nslookup查询的shell_exec空响应

时间:2015-11-28 17:08:20

标签: php linux ubuntu networking shell-exec

我正在使用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);
?>

1 个答案:

答案 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;
?>