我正在使用Ubuntu和xampp,我正在尝试执行命令nslookup gmail.com
。 PHP,但我的回复是空的。当我尝试使用Windows机器以及运行CentOS的Linux服务器时,同样的事情也有效。
当我直接在我的终端上运行命令时,FYI 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);
?>
答案 0 :(得分:0)
当您通过Web浏览器执行时,php脚本将作为权限较低的www用户(在您的情况下为守护程序)执行。它没有足够的权限来执行命令nslookup
。我不推荐增加www用户的权限,这是一个安全风险。作为替代尝试gethostbyname php函数。它返回与给定Internet主机名对应的IPv4地址。
<?php
$email = $_GET['email'];
$server = explode("@", $email)[1];
echo $server;
$ip = gethostbyname($server);
echo $ip;
?>