【问题标题】:Retrieve the name servers of a given domain with PHP使用 PHP 检索给定域的名称服务器
【发布时间】:2012-09-04 05:43:03
【问题描述】:

我正在尝试检索给定域的名称服务器,最好是在 PHP 中。

我尝试了多种方法,但无法获得任何体面/一致的结果,并且想知道是否有人知道可以帮助我实现这一目标的函数或类?

例如,this whois 类取得了一些成功,但未能从 .com TLD 中检索名称服务器。

我在想我或许可以以某种方式使用 Google 的 DNS 服务器 8.8.8.8,但不确定如何?

任何指针将不胜感激。

【问题讨论】:

  • 用PHP解析nslookup的控制台输出怎么样?
  • @ShivanRaptor 嗨,nslookup 似乎只获取我的本地缓存 DNS,在我的情况下是我的 ISP 处女媒体,而不是真正的名称服务器,即 ns.something.cloudflare.com 等

标签: php curl dns nameservers


【解决方案1】:

答案就是这个函数:

http://www.php.net/manual/en/function.dns-get-record.php

$result = dns_get_record("stackoverflow.com");
var_dump($result);

【讨论】:

    【解决方案2】:

    this

    对于 Windows 上的 PHP:

    $e = 'nslookup -debug www.google.com. 8.8.8.8';
    

    对于 Mac 和 Linux 上的 PHP:

    $e = 'dig @8.8.8.8 www.google.com.';
    

    然后,

    $o = array();
    $r = -1;
    $ip = exec($e,$o,$r);
    if($r == 0) // success
    {
        // do some regexp or explosion depending upon your output format to get the ip
        // here is for windows:
        $ip = trim(explode("Address:", $ip)[1]);
    }
    

    【讨论】:

    • 谢谢,但在这个实例中 $ip 返回一个空字符串。但是,我的答案中的功能可以完成工作。此外,如果您看到第一个答案的第一条评论,您会看到 nslookup 不会检索正确的名称服务器,而是检索 ISP 中间缓存的名称服务器。
    • @RodgersandHammertime 不,你错了。 nslookup -debug 在 Windows 的情况下,是否用于特定目的 - 不使用本地 isp 的缓存名称服务器。在这种情况下,$ip 由于其他原因是空的:google 有多个 ip 地址,当我为“地址”爆炸时,我什么也得不到。
    • i var 在 exec 之后转储了返回的 $ip,无论如何它都是空的。想想 PHP 函数 dns_get_record($domain);也无限优雅
    • 啊 $o 数组实际上拥有所有好东西。我同意 dns_get_record 更容易使用。但是,您如何确认它不使用本地 dns 服务器进行解析? 我的意思是,我搜索并找不到与用于获取记录的 dns 服务器相关的任何内容。
    • 非常真实和公平的观点。在我的测试中,名称服务器在使用 exec nslookup 时被列为 xyz.ns.virginmedia.net 等,但是是的,我同意您无法验证。
    【解决方案3】:

    有一些 PHP 函数可以做到这一点。

    http://www.php.net/manual/en/function.gethostbyname.php http://php.net/manual/en/function.gethostbyaddr.php

    也许你可以使用它。

    编辑:左侧是网络功能的完整列表。

    【讨论】:

    • 碰巧,左边是命名相当方便的函数 dns_get_record,成功了,干杯。
    猜你喜欢
    • 2014-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多