我的PHP类中有以下命令:
@exec('nslookup -type=' . $type . ' ' . escapeshellcmd($host), $output);
由于安全限制(exec
和escapeshellcmd
已从php.ini禁用),因此无法在我的服务器上运行。有没有不依赖exec
的替代方案?
答案 0 :(得分:5)
您可以使用dns_get_record()
:
答案 1 :(得分:1)
我使用内置的gethostbyname($hostname)
:传递一个域名,如果可以找到则返回ip,否则返回未修改的输入字符串。 gethostbyaddr($ip)
反过来说。
另见:
- gethostbyname文件
- gethostbyaddr文档
答案 2 :(得分:0)
PHP dns_get_record()
函数是一种简单的方法。但是,请注意,如果用户更改其主机文件,dns_get_record()
将返回hosts文件中设置的值,而不是查询权威DNS服务器。