繁体   English   中英

如何获得网站的所有IP地址?

[英]How can I get ALL IP addresses of a web site?

有什么方法可以让给定网站的所有IP地址?

CURL可以做到吗? PHP中可能吗?

使用dns_get_record ,如下所示:

$all_records = dns_get_record('example.com');
$ips = array();
foreach ($all_records as $r) {
    if ($r['type'] == 'A') {
        $ips[] = $r['ip'];
    }
    if ($r['type'] == 'AAAA') {
        $ips[] = $r['ipv6'];
    }
}
var_export($ips);

如果您仅对IPv4地址感兴趣, gethostbynamel还提供了一个简化的接口。

请注意,由于响应大小和地域偏好的限制,您可能需要从多个位置多次询问此查询,以获取一个频繁使用的域(例如google.com)的所有(或大部分)地址。

PHP为此提供了一个功能: gethostbynamel()

该函数执行DNS查询并返回结果IP

例:

var_dump(gethostbynamel('google.com'));

产量

array(6) {
  [0] =>
  string(14) "173.194.70.139"
  [1] =>
  string(14) "173.194.70.113"
  [2] =>
  string(14) "173.194.70.100"
  [3] =>
  string(14) "173.194.70.138"
  [4] =>
  string(14) "173.194.70.102"
  [5] =>
  string(14) "173.194.70.101"
}

@MEznati关于负载平衡:

有几种负载平衡方法。 例如,谷歌使用基于DNS的负载平衡,这就是我举这个例子的原因。 如果使用某种形式的内部负载平衡-意味着负载平衡器具有1个外部IP并将请求重定向到内部服务器-您将无法获得这些内部(专用)IP(这是设计使然)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM