我希望在基于Windows的Apache服务器上使用PHP中的Exec Command从HTML表单中获取2个或更多IP。
<?php
if(isset($_REQUEST['go'])){
$ips=implode(" ",$_REQUEST['ips']);
$total=count($ips);
for ($i=1; $i<=$total; $i++){
exec ("ping -n 2".$ips, $ping_output, $value);
echo $ping_output;
}
}
?>
<form method="post" enctype="multipart/form-data">
<label>Enter First IP</label><br/>
<input type="text" name="ips[]" placeholder="192.168.0.1" required="true" /><br/>
<label>Enter Second IP</label><br/>
<input type="text" name="ips[]" placeholder="127.0.0.1" required="true" /><br/>
<button type="submit" name="go">Get Results</button>
</form>
当我运行这个脚本时,它会进入无限循环,除了Processing之外不会显示任何内容。 所有我想要显示IP ping结果对其IP成功或不成功。
答案 0 :(得分:0)
首先创建Ping单个IP地址的功能
function pingIp($ip) {
exec ("ping -n 2 ".$ip, $ping_output, $value);
return $ping_output;
}
if(isset($_REQUEST['go'])){
//$arr = array('127.0.0.1','127.0.0.9','46.101.113.87','159.203.96.186');
$arr =$_REQUEST['ip'];
for($i=0; $i<count($arr); $i++){
?>
<pre>
<?php
print_r(pingIp($arr[$i]));
echo('<br/><br/>');
}
}
然后从Form获取IP并调用该函数,如给定的示例。