Ваш скрипт ТОЛЬКО запросы
whois.internic.net
помните, что по всему миру существует несколько провайдеров доменов/IP.
Полноценные инструменты, такие как те, что представлены в большинстве дистрибутивов Linux, знают, что нужно попробовать несколько разных серверов, а затем изучить данные со всех них, чтобы определить, какой сервер является авторитетным.
Насколько я помню, есть 5 всемирных авторитетных зон, внутренняя у вас уже есть, плюс:
whois.afrinic.net
whois.lacnic.net
whois.arin.net
whois.apnic.net
Ripe (центральный реестр, который мы используем здесь, в Европе) тоже есть, но это не то, что вы ожидаете, 'whois.ripe.net', и у меня нет времени искать его прямо сейчас.
Теперь, помимо того, что я сказал выше, вы можете рассмотреть следующее. Большинство органов whois ограничивают (или даже блокируют) ваш трафик, если сочтут, что вы делаете слишком много запросов в течение 24 часов, вместо этого вы можете захотеть войти на ftp-сайт любого из вышеперечисленных провайдеров и загрузить различные биты. базы данных, а затем написать (или найти) собственный скрипт для их обработки.
В настоящее время я делаю это с одним из моих собственных серверов, который подключается с помощью следующего сценария оболочки (один раз каждые 24 часа):
#!/bin/bash
rm -f delegated-afrinic-latest
rm -f delegated-lacnic-latest
rm -f delegated-arin-latest
rm -f delegated-apnic-latest
rm -f delegated-ripencc-latest
rm -f ripe.db.inetnum
rm -f apnic.db.inetnum
rm -f ripe.db.inetnum.gz
rm -f apnic.db.inetnum.gz
wget ftp://ftp.afrinic.net/pub/stats/afrinic/delegated-afrinic-latest
wget ftp://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-latest
wget ftp://ftp.arin.net/pub/stats/arin/delegated-arin-latest
wget ftp://ftp.apnic.net/pub/stats/apnic/delegated-apnic-latest
wget ftp://ftp.ripe.net/ripe/stats/delegated-ripencc-latest
wget ftp://ftp.ripe.net/ripe/dbase/split/ripe.db.inetnum.gz
ftp -n -v ftp.apnic.net <<END
user anonymous [email protected]
binary
passive
get /apnic/whois-data/APNIC/split/apnic.db.inetnum.gz apnic.db.inetnum.gz
bye
END
gunzip ripe.db.inetnum
gunzip apnic.db.inetnum
Затем у меня есть специально написанная программа, которая анализирует файлы в пользовательскую структуру базы данных, из которой мои серверы затем выполняют свои запросы.
Поскольку все серверы отражают данные друг друга, вы сможете получить полный набор данных с одного сервера, но в противном случае не потребуется много времени, чтобы изменить приведенный выше сценарий оболочки, чтобы загрузить данные с других серверов, все они тоже отвечают 'ftp.????' и имеют одинаковую универсальную структуру папок.
Однако я не могу помочь вам с синтаксическим анализатором, так как он содержит проприетарный код, но формат файла (особенно если вы получаете разделенные файлы) идентичен тому, что вы видите в типичном выводе whois, поэтому с ним очень легко работать.
Загружая и обрабатывая свои собственные данные таким образом, вы обходите любые ограничения, налагаемые провайдерами, и в результате, скорее всего, гораздо быстрее запрашивать собственное хранилище данных, чем каждый раз отправлять запросы с вашего сервера на серверы запросов. кто-то вводит IP-адрес.
ОБНОВИТЬ
Есть много, намного больше серверов whois, чем те, которые я перечислил здесь, однако вместо того, чтобы перечислять их все на этой странице, эта ссылка:
https://jfreewhois.googlecode.com/git/JFreeWhois/src/uk/org/freedonia/jfreewhois/etc/serverlist.xml
приведет вас к файлу XML, который является частью проекта в коде Google, возвращенный файл XML даст вам довольно большой список всех доступных серверов whois, а также список TLD, которые обслуживает каждый из них, что позволит вам адаптировать свой скрипт для связи с правильным сервером в зависимости от введенного адреса.
person
shawty
schedule
29.05.2013