0

我想查找特定主机的所有 IP,例如 yahoo.com 或 facebook.com 我知道他们有多个 IP。什么是最好的方法?

4

3 回答 3

1

我认为您在 PHP 中寻找的是dns_get_record. 它将获取实际的 DNS 记录,其中可以包括多个 IP 地址(A记录)。请注意,由于基于 DNS 的负载平衡解决方案,这可能并不总是为您提供所有IP。

来自 PHP.net 的示例:

<?php
$result = dns_get_record("php.net");
print_r($result);
?>

输出:

Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => MX
            [pri] => 5
            [target] => pair2.php.net
            [class] => IN
            [ttl] => 6765
        )

    [1] => Array
        (
            [host] => php.net
            [type] => A
            [ip] => 64.246.30.37
            [class] => IN
            [ttl] => 8125
        )

)
于 2012-12-08T20:44:30.890 回答
0

您可以做的只是查找 A 和 AAAA 记录。我假设你想用 Linux 来做这件事,因为那是标签之一。为此,您可以运行类似dig yahoo.com. 有关更多详细信息,请查看man dig。如果还没有dig安装,可以用包管理器安装。

对于 PHP,请查看该dns_get_record()函数。

请注意,有时,大公司对多台机器使用相同的 IP。

于 2012-12-08T20:41:42.850 回答
0

您应该尝试dig,这是BIND套装的一部分。它是探索域名系统的绝佳工具。

绑定到特定域的 IP 地址列在 ANSWER SECTION 下。此外,您还会获得相关 DNS 服务器及其地址的列表。

例子:

$ dig yahoo.com
...

;; QUESTION SECTION:
;yahoo.com.             IN  A

;; ANSWER SECTION:
yahoo.com.      2131    IN  A   98.138.253.109
yahoo.com.      2131    IN  A   98.139.183.24
yahoo.com.      2131    IN  A   72.30.38.140

;; AUTHORITY SECTION:
yahoo.com.      65928   IN  NS  ns4.yahoo.com.
...

ns4.yahoo.com.  65928   IN  A   68.142.196.63
...
于 2012-12-08T21:36:35.793 回答