首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用gethostbyname解析IP

使用gethostbyname解析IP
EN

Stack Overflow用户
提问于 2017-05-09 10:17:13
回答 1查看 596关注 0票数 2

我想编写一些仅在访问页面时才会出现的调试窗口。我有一个包含IP的DDNS地址。这个IP是在服务器上询问的。或者说应该问一问。但是解决的问题来了。

我试图通过以下方法解析IP:

代码语言:javascript
复制
echo gethostbyname("google.com");

无论我使用哪个域,它都会失败,并且只返回文档中的域。它返回失败时包含未修改主机名的IPv4地址或字符串。

我也试过:

代码语言:javascript
复制
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设置才能运行?

我的主要问题是,这个功能完全坏了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-09 10:56:16

  1. 确保检查连接到端口53 (DNS)的能力。
  2. 您可以通过从PHP中尝试passthru('nslookup google.com 2>&1')来进一步调试。这将显示来自stdout和stderr的全部输出,因为它可能包含一些更多的信息。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43867121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档