【发布时间】:2012-07-18 19:43:03
【问题描述】:
如何使用 PHP 将主机名解析为 IP 地址, 但使用不同的名称服务器(例如OpenDNS 或Google Public DNS)。
dns_get_record() 或 gethostbyname() 似乎无法使用与系统上当前设置的名称服务器不同的名称服务器(在 TCP/IP 设置中或 /etc/resolv.conf 中)。
我发现的唯一方法是使用 PEAR 类 Net/DNS,但它在 PHP 5.4 下给了我很多警告
【问题讨论】:
-
是否可以通过 exec 运行 python 脚本并读取 shell 输出?我在这里看到在 urllib2 中解决了同样的问题:stackoverflow.com/questions/2236498/…
-
@DeaconDesperado:为什么要使用 python 脚本?如果你可以在 PHP 中使用
exec,为什么不直接调用 unixhost命令呢?exec('host google.com 8.8.8.8')? -
@Rocket,只是建议我熟悉的内容,因此是评论而不是回答;)
-
不错的选择,但我希望它快一点。 exec() 实际上分叉并使用管道来重定向标准输入和标准输出。这是非常昂贵的操作,在我的情况下会浪费 CPU 资源。