ip2location: получить все ip, принадлежащие домену

Я хочу, чтобы все ip(ы) принадлежали домену, например, google.com, я недавно посмотрел на это, https://github.com/ip2location/ip2location-cakephp. Итак, что я собираюсь сделать, это нравится это:

<?php
// clientIp() will iterate from 1.1.1.1 to 255.255.255.255
App::uses('IP2LocationCore', 'IP2Location.Model');
$IP2Location = new IP2LocationCore();
$record = $IP2Location->get($this->request->clientIp());

if(strcmp($record->domainName, 'google.com')) {
// log the ip to a text file
}
?>

У меня вопрос: возможно ли это решение? И все же лучше, чем это?

2 ответа

Я не очень разбираюсь в PHP, поэтому учтите это в моем ответе!

Похоже, что ip2location берет IP-адрес и определяет его местоположение. Это делается (я думаю) путем компиляции информации из разных источников данных.

Однако вам нужно начать с IP-адреса, и он даст вам обратный домен, связанный с этим. Это может отличаться от адреса прямого просмотра.

Например, у меня есть имя хоста vm.example.com, которое я использую для указания на сеанс удаленного рабочего стола в Azure. Если вы выполните обратный поиск по этому адресу, вы не получите никакой информации о моем домене, вы получите домен Azure, потому что именно здесь регистрируется обратное.

и, насколько мне известно, до тех пор, пока не включена передача зон, невозможно получить все имена хостов в домене. По крайней мере, без увеличения всего домена.

Есть ли конкретная причина, по которой вы хотите это сделать?

Попробуйте использовать функцию PHP gethostbynamel.

<?php
$hosts = gethostbynamel('google.com');
print_r($hosts);
?>

Это, например, вернет:

Array
(
    [0] => 173.194.113.35
    [1] => 173.194.113.41
    [2] => 173.194.113.46
    [3] => 173.194.113.34
    [4] => 173.194.113.40
    [5] => 173.194.113.39
    [6] => 173.194.113.33
    [7] => 173.194.113.37
    [8] => 173.194.113.32
    [9] => 173.194.113.38
    [10] => 173.194.113.36
)
Другие вопросы по тегам