php + shell: как найти родительский домен IP ("супердомен")
Учитывая произвольный IP-адрес (регистратор на данный момент неизвестен), каков самый простой или эффективный способ поиска CIDR конечного пользователя, которому он "принадлежит", и базовую информацию об этом IP-блоке (например, зарегистрированное имя владельца).
Я ищу такую функцию:
EXAMPLE INPUT:
$parent = get_parent_range_info('195.122.169.15');
DESIRED OUTPUT is an array that contains:
End-user IP range it 'belongs' to = 195.122.169.0 - 195.122.169.63 (195.122.169.0/26)
Range's registered netname = KASPERSKY-LAB
[And other info if possible, eg:]
descr: BBLZ9143
country: DE
changed: ipan@level3.com 20101101
person: Sudakov Andrey
address: 10/1 1st Volokolamsky Proezd
address: 123060 Moscow,
address: Russia
phone: +79 030049180
nic-hdl: SA7294-RIPE
e-mail: unixadm@kaspersky.com
notify: unixadm@kaspersky.com
mnt-by: LEVEL3-MNT
changed: greg.farrell@level3.com 20101101
Информацию, использованную в этом примере, можно увидеть, введя IP по адресу: https://apps.db.ripe.net/search/query.html. Другие регистраторы имеют похожие поиски на своих сайтах.
Платформа PHP, с полным доступом к командам оболочки "exec()", если проще.
Я вижу, что большинство регистраторов могут предоставить эту информацию (в виде XML или JSON), часто через API своего веб-сайта, и некоторые команды *nix и, возможно, команды PHP могут разумно определить, какой регистратор обрабатывает IP, и автоматически обнаруживать некоторую информацию поиска. Несколько команд, которые я знаю, как whois, dig, host
и так далее, *nix, похоже, не предоставляет такую информацию.
Как мне это сделать?