Php nslookup查询的shell\u exec空响应

Php nslookup查询的shell\u exec空响应,php,linux,ubuntu,networking,shell-exec,Php,Linux,Ubuntu,Networking,Shell Exec,我正在使用Ubuntu和xampp,我正在尝试通过执行命令nslookup gmail.comvia。PHP,但我得到一个空响应。当我在windows机器上以及在运行CentOS的Linux服务器上进行尝试时,同样的事情也起了作用 仅供参考,当我直接在终端上运行命令时,nslookup gmail会给出正确的响应,问题只是当我试图通过。php 我甚至试着做了一个查找,然后 $nslookup=shell_exec(“/usr/bin/nslookup$server”)没有帮助,但是相同的空白响应

我正在使用Ubuntu和xampp,我正在尝试通过执行命令
nslookup gmail.com
via。PHP,但我得到一个空响应。当我在windows机器上以及在运行CentOS的Linux服务器上进行尝试时,同样的事情也起了作用

仅供参考,当我直接在终端上运行命令时,nslookup gmail会给出正确的响应,问题只是当我试图通过。php

我甚至试着做了一个
查找
,然后
$nslookup=shell_exec(“/usr/bin/nslookup$server”)没有帮助,但是相同的空白响应

尽管注意当从PHP执行命令
whoami
时(我在下面的代码中已经对其进行了注释),该命令确实给出了
守护进程的正确响应

我对Ubuntu很陌生,所以一点帮助就好了

<?php
$email = $_GET['email'];
$server = explode("@", $email)[1];
echo $server;

$nslookup = shell_exec("nslookup $server");
// $nslookup = shell_exec("whoami");
print_r($nslookup);
?>

当您通过web浏览器执行时,php脚本将作为权限较低的www用户(在您的情况下为守护进程)执行。它没有足够的权限执行命令
nslookup
。我不建议增加www用户的权限,这是一种安全风险。另一种方法是尝试php函数。它返回与给定Internet主机名对应的IPv4地址

<?php
 $email = $_GET['email'];
 $server = explode("@", $email)[1];
 echo $server;
 $ip = gethostbyname($server);
 echo $ip;
?>


您能告诉我如何增加www用户的权限吗?为什么不使用gethostbyname?他们都做同样的事。