Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 不使用gethostbyname从DNS获取IP?_Php_Sockets_Dns - Fatal编程技术网

Php 不使用gethostbyname从DNS获取IP?

Php 不使用gethostbyname从DNS获取IP?,php,sockets,dns,Php,Sockets,Dns,就超时而言,PHP函数似乎不可配置。我想将DNS请求限制在1秒或更短的时间内,因为这样会出现问题,应该忽略 那么,有没有办法使用套接字或cURL进行DNS查询呢?我能够使用节省服务器资源的PHP流发出SMTP请求,因此我希望对DNS查询也能这样做。上的注释有一些设置/包括超时的选项: <?php function getAddrByHost($host, $timeout = 3) { $query = `nslookup -timeout=$timeout -retry=1 $ho

就超时而言,PHP函数似乎不可配置。我想将DNS请求限制在1秒或更短的时间内,因为这样会出现问题,应该忽略

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

上的注释有一些设置/包括超时的选项:

<?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;
}
?>


@Xeoncross:这可能是你最好的选择。否则,您可以查看RFC()的
4.2节,了解如何发送您自己的数据包