我想编写一些仅在访问页面时才会出现的调试窗口。我有一个包含IP的DDNS地址。这个IP是在服务器上询问的。或者说应该问一问。但是解决的问题来了。
我试图通过以下方法解析IP:
echo gethostbyname("google.com");无论我使用哪个域,它都会失败,并且只返回文档中的域。它返回失败时包含未修改主机名的IPv4地址或字符串。
我也试过:
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;
}
echo getAddrByHost("google.com");这个结果也是一样的。在我的pc上执行命令行中的nslookup -timeout=$timeout -retry=1 google.com很好。但是我需要一个脚本,所以这对我一点帮助都没有:)
我希望有一个正常的IPv4地址。
此函数是否需要特殊的php.ini设置才能运行?
我的主要问题是,这个功能完全坏了吗?
发布于 2017-05-09 10:56:16
passthru('nslookup google.com 2>&1')来进一步调试。这将显示来自stdout和stderr的全部输出,因为它可能包含一些更多的信息。https://stackoverflow.com/questions/43867121
复制相似问题