【问题标题】:get website ip using php使用php获取网站ip
【发布时间】:2011-12-08 06:54:21
【问题描述】:

我需要使用 php 获取给定的网站 IP 地址,即托管网站的服务器的 IP 地址。

为此,我使用了gethostbyname('**example.com*')。当站点未重定向时,它可以正常工作。例如,如果我使用此函数获取 google.com,它会给出“74.125.235.20”。

当我为“lappusa.com”尝试它时,它给出了“lappusa.com”。然后我在浏览器中尝试了这个,它重定向到“http://lappusa.lappgroup.com/”。我检查了显示 200 的 http 状态代码。

但即使网站被重定向,我也需要获取 ip 地址,例如如果 lappusa.com 被重定向到 lappusa.lappgroup.com,那么我需要获取重定向 url 的 ip。

我应该如何得到这个?非常感谢任何帮助,谢谢!。

【问题讨论】:

  • 网站lappusa.com 未重定向。我只是不存在。

标签: php dns ip hostname


【解决方案1】:

他们使用 HTML 源代码中的 META 标记进行重定向。你需要解析实际的源代码来捕捉它。

【讨论】:

    【解决方案2】:

    问题不在于 HTTP 重定向(高于 gethostbyname 操作的级别),而是 lappusa.com 无法解析任何 IP 地址,因此无法在任何浏览器中加载。您的浏览器所做的是自动尝试在 www. 前面添加。

    您可以在代码中重现该行为。另请注意,多个 IP(版本 4 和 6)可以与一个域关联:

    <?php
    function getAddresses($domain) {
      $records = dns_get_record($domain);
      $res = array();
      foreach ($records as $r) {
        if ($r['host'] != $domain) continue; // glue entry
        if (!isset($r['type'])) continue; // DNSSec
    
        if ($r['type'] == 'A') $res[] = $r['ip'];
        if ($r['type'] == 'AAAA') $res[] = $r['ipv6'];
      }
      return $res;
    }
    
    function getAddresses_www($domain) {
      $res = getAddresses($domain);
      if (count($res) == 0) {
        $res = getAddresses('www.' . $domain);
      }
      return $res;
    }
    
    print_r(getAddresses_www('lappusa.com'));
    /* outputs Array (
      [0] => 66.11.155.215
    ) */
    print_r(getAddresses_www('example.net'));
    /* outputs Array (
      [0] => 192.0.43.10
      [1] => 2001:500:88:200::10
    ) */
    

    【讨论】:

    • 成功了。我尝试在 gethostbyname 前面加上“www”,它会产生与您的功能相同的输出。但请多解释一下..还可以为您的回答添加结束 php 标记...谢谢。
    • @Sekar 如果文件中没有更多内容,则不需要关闭php标签(如果关闭它,很多编辑会坚持多空一行,这将由php)。 get_dns_record 不仅可以获取 IPv4 地址,还可以获取 IPv6 地址。如果您对此不感兴趣,可以将getAddresses 函数替换为gethostbynamel
    • 好的,感谢您的努力,还提供了 gethostbynamel 功能链接。这很好。
    【解决方案3】:

    您是否尝试将 HttpRequest 发送到某个页面,然后解析响应标头?我不确定,但它应该包含一些 IP 或主机信息...

    【讨论】:

    • 是的,我尝试 curl 检查“位置”是否存在有时我们会看到重定向的 url,对于这个 url,即使该属性不存在..
    • 现在我发现 curl 无法捕获 javascript 重定向。那么如何检查给定的 url 是否被重定向...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 2017-07-29
    • 2012-10-15
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多