我使用的是Ubuntu和xampp,我试图通过执行命令nslookup gmail.com
。 PHP,但我得到一个空的答复。 当我在Windows机器上以及在运行CentOS的Linux服务器上尝试时,同样的事情也奏效了。
仅供参考当我在terminal上直接运行命令时, nslookup gmail
给出了正确的响应,问题只有当我尝试通过。 PHP。
我甚至尝试做一个which nslookup
,然后$nslookup = shell_exec("/usr/bin/nslookup $server");
没有帮助,但同样的空白回应。
虽然请注意 ,从PHP执行的命令whoami
(我已经在下面的代码中注释)确实给出了daemon
的正确响应
我对Ubuntu很新,所以有一点帮助会很大。
<?php $email = $_GET['email']; $server = explode("@", $email)[1]; echo $server; $nslookup = shell_exec("nslookup $server"); // $nslookup = shell_exec("whoami"); print_r($nslookup); ?>
当你通过网络浏览器执行的时候,php脚本执行的权限较低的www用户(在你的情况下是daemon)。 它没有足够的权限来执行命令nslookup
。 我不建议增加www用户的特权,这是一个安全风险。 作为替代尝试gethostbyname PHP函数。 它返回与给定Internet主机名相对应的IPv4地址。
<?php $email = $_GET['email']; $server = explode("@", $email)[1]; echo $server; $ip = gethostbyname($server); echo $ip; ?>