代码之家  ›  专栏  ›  技术社区  ›  Xeoncross

不使用gethostbyname从DNS获取IP?

  •  4
  • Xeoncross  · 技术社区  · 14 年前

    PHP的 gethostbyname() 就超时而言,函数似乎不可配置。我想将DNS请求限制在1秒或更短的时间,因为现在显示出一个问题,应该被忽略。

    那么,有没有一种方法可以使用套接字或cURL进行DNS查询呢?我能够使用节省服务器资源的PHP流发出SMTP请求,因此我希望对DNS查询也这样做。

    1 回复  |  直到 14 年前
        1
  •  4
  •   SW4    14 年前

    关于 PHP article 有一些设置/包括超时的选项:

    <?php
    function getAddrByHost($host, $timeout = 3) {
       $query = `nslookup -timeout=$timeout -retry=1 $host`;
       if(preg_match('/\nAddress: (.*)\n/', $query, $matches))
          return trim($matches[1]);
       return $host;
    }
    ?>
    

    http://www.php.net/manual/en/function.gethostbyname.php#92870