PHP有内置的替代exec(“nslookup”)吗?

时间:2012-02-01 21:38:28

标签: php shell

我的PHP类中有以下命令:

@exec('nslookup -type=' . $type . ' ' . escapeshellcmd($host), $output);

由于安全限制(execescapeshellcmd已从php.ini禁用),因此无法在我的服务器上运行。有没有不依赖exec的替代方案?

3 个答案:

答案 0 :(得分:5)

您可以使用dns_get_record()

http://www.php.net/dns_get_record

答案 1 :(得分:1)

我使用内置的gethostbyname($hostname):传递一个域名,如果可以找到则返回ip,否则返回未修改的输入字符串。 gethostbyaddr($ip)反过来说。

另见:
- gethostbyname文件
- gethostbyaddr文档

答案 2 :(得分:0)

PHP dns_get_record()函数是一种简单的方法。但是,请注意,如果用户更改其主机文件,dns_get_record()将返回hosts文件中设置的值,而不是查询权威DNS服务器。