2014-01-21 127 views
0

我需要或多或少地獲取一張表,報告本地網絡上計算機的IP,以及是否可以找到它。通過PHP獲取網絡上一臺計算機的「狀態」

我已經設置了20臺機器,全部採用靜態IP地址,從192.168.1.111 - 192.168.1.120

我如何檢查,看看機器是否「在線」,並報告其狀態返回到網頁?

目前,我這樣做:

<?php 

    $nodes = array(
     "192.168.1.111", 
     "192.168.1.112", 
     "192.168.1.113", 
     "192.168.1.114", // offline 
     ); 

    $table = ""; 

    for($i = 0; $i < count($nodes); ++$i) { 
     exec("ping -c 4 " . $nodes[$i], $output, $result); 

     if ($result == 0) { 
      // echo "Ping successful!";  
      $table += "<tr>"; 
      $table += "<td>Node " . $i . "</td>"; 
      $table += "<td> " . $nodes[$i] . "</td>"; 
      $table += "<td>Ready</td>"; 
      $table += "</tr>"; 

     } else { 
      // echo "Ping unsuccessful!";  
      $table += "<tr>"; 
      $table += "<td>Node " . $i . "</td>"; 
      $table += "<td> " . $nodes[$i] . "</td>"; 
      $table += "<td>Offline</td>"; 
      $table += "</tr>"; 
     } 
    } 

    echo $table; 

?> 

我是新來的PHP,所以請原諒我,如果事情是錯的(我敢肯定,這是),但是,這並不輸出數據正確,並且還需要很長時間才能「ping回」本地網站。

上述腳本是在它自己的文件,並附帶<?php include('nodes.php'); ?>

Idealy,應將信息顯示如下所示:

Computer Name    IP Address  Status 
Node 1     192.168.1.111  Online 
Node 2     192.168.1.112  Online 
Node 3     192.168.1.113  Online 
Node 4     192.168.1.114  Offline 

回答

0

請嘗試以下方法,或者使用/斌/平-n 3

<?php 
function pingAddress($ip) { 
    $pingresult = exec("/bin/ping -n 3 $ip", $outcome, $status); 
    if (0 == $status) { 
     return = True; 
    } else { 
     return = False; 
    } 
} 

pingAddress("127.0.0.1"); 
?> 
+0

竅門!謝謝 :) –

相關問題