我想编写一些只在我访问页面时显示的调试窗口。我有一个包含我的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");
这个结果相同。在我的电脑上的命令行中执行nslookup -timeout=$timeout -retry=1 google.com
工作正常。但我需要它来制作一个剧本,所以这根本不能帮助我:)
我希望有一个普通的IPv4地址。
此功能是否需要特殊的php.ini设置才能运行?
我的主要问题是,这个功能完全坏了吗?
答案 0 :(得分:2)
passthru('nslookup google.com 2>&1')
来进一步调试。这将显示stdout和stderr的完整输出,因为它可能包含更多信息。