在Windows中使用PHP进行Ping多个IP

时间:2016-12-10 15:57:25

标签: php ping

我希望在基于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成功或不成功。

1 个答案:

答案 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并调用该函数,如给定的示例。