Несколько примеров как в PHP получить информацию о домене и IP-адресе.
Получить информацию об IP-адресе можно с помощью сервиса WHOIS REST API, отправив запрос на http://rest.db.ripe.net/search?query-string=
xxx.xxx.xxx.xxx
Ответ будет в формате XML.
$ip = '213.180.193.1';
$xml = simplexml_load_string(file_get_contents('http://rest.db.ripe.net/search?query-string=' . $ip));
$array = json_decode(json_encode($xml), TRUE);
$data = array();
foreach ($array['objects'] as $row) {
foreach ($row as $row2) {
foreach ($row2['attributes'] as $row3) {
foreach ($row3 as $row4) {
$data[$row4['@attributes']['name']][] = $row4['@attributes']['value'];
}
}
}
}
print_r($data);
Результат:
Array(
[inetnum] => Array(
[0] => 213.180.193.0 - 213.180.193.255
)
[netname] => Array(
[0] => YANDEX-213-180-193
)
[status] => Array(
[0] => ASSIGNED PA
)
[country] => Array(
[0] => RU
)
[descr] => Array(
[0] => Yandex enterprise network
[1] => Yandex enterprise network
)
[admin-c] => Array(
[0] => YNDX1-RIPE
[1] => PGR777-RIPE
)
[tech-c] => Array(
[0] => YNDX1-RIPE
[1] => EM3673-RIPE
[2] => AUR2-RIPE
)
[remarks] => Array(
[0] => INFRA-AW
[1] => trouble: ------------------------------------------------------
[2] => trouble: Points of contact for Yandex LLC Network Operations
[3] => trouble: ------------------------------------------------------
[4] => trouble: Routing and peering issues: noc@yandex.net
[5] => trouble: SPAM issues: abuse@yandex.ru
[6] => trouble: Network security issues: abuse@yandex.ru
[7] => trouble: Mail issues: postmaster@yandex.ru
[8] => trouble: General information: info@yandex.ru
[9] => trouble: ------------------------------------------------------
)
[mnt-by] => Array(
[0] => YANDEX-MNT
[1] => YANDEX-MNT
[2] => YANDEX-MNT
)
[created] => Array(
[0] => 2011-08-30T09:34:57Z
[1] => 2002-06-07T05:35:50Z
[2] => 2012-02-09T15:59:56Z
)
[last-modified] => Array(
[0] => 2014-03-26T08:38:45Z
[1] => 2018-08-03T07:15:46Z
[2] => 2012-02-09T15:59:56Z
)
[source] => Array(
[0] => RIPE
[1] => RIPE
[2] => RIPE
)
[role] => Array(
[0] => Yandex LLC Network Operations
)
[address] => Array(
[0] => Yandex LLC
[1] => 16, Leo Tolstoy St.
[2] => 119021
[3] => Moscow
[4] => Russian Federation
)
[phone] => Array(
[0] => +7 495 739 7000
)
[fax-no] => Array(
[0] => +7 495 739 7070
)
[nic-hdl] => Array(
[0] => YNDX1-RIPE
)
[abuse-mailbox] => Array(
[0] => abuse@yandex.ru
)
[route] => Array(
[0] => 213.180.193.0/24
)
[origin] => Array(
[0] => AS13238
)
)
С доменами сложнее, т.к. нужно отправлять TCP запрос (43-й порт) на WHIOS-сервер в зависимости от зоны домена, полный список whois-серверов.
Основные зоны
Зона | Сервер |
---|---|
.ru, .su, .рф | whois.tcinet.ru |
.com, .net | whois.verisign-grs.net |
.org | whois.pir.org |
$server = 'whois.tcinet.ru';
$host = 'yandex.ru';
$socket = fsockopen($server, 43);
if ($socket) {
fputs($socket, $host . PHP_EOL);
$text = '';
while (!feof($socket)) {
$text .= fgets($socket, 128);
}
fclose($socket);
echo $text;
}
Результат:
% By submitting a query to RIPN's Whois Service
% you agree to abide by the following terms of use:
% http://www.ripn.net/about/servpol.html#3.2 (in Russian)
% http://www.ripn.net/about/en/servpol.html#3.2 (in English).
domain: YANDEX.RU
nserver: ns1.yandex.ru. 213.180.193.1, 2a02:6b8::1
nserver: ns2.yandex.ru. 93.158.134.1, 2a02:6b8:0:1::1
nserver: ns9.z5h64q92x9.net.
state: REGISTERED, DELEGATED, VERIFIED
org: YANDEX, LLC.
registrar: RU-CENTER-RU
admin-contact: https://www.nic.ru/whois
created: 1997-09-23T09:45:07Z
paid-till: 2019-09-30T21:00:00Z
free-date: 2019-11-01
source: TCI
Last updated on 2019-04-10T13:26:32Z
Есть хороший API сервис «ip-api», возвращает информацию о домене, IP-адресе + геолакацию. Не требует регистрации и ключей, ограничение 150 запросов в минуту с одного IP-адреса, но не для коммерческого использования.
$host = 'yandex.ru';
$json = file_get_contents('http://ip-api.com/json/' . $host . '?lang=ru');
$array = json_decode($json, TRUE);
print_r($array);
Array
(
[as] => AS13238 YANDEX LLC
[city] => Москва
[country] => Россия
[countryCode] => RU
[isp] => Yandex enterprise network
[lat] => 55.734
[lon] => 37.5883
[org] => Yandex LLC
[query] => 5.255.255.80
[region] => MOW
[regionName] => Москва
[status] => success
[timezone] => Europe/Moscow
[zip] =>
)