2014-01-21 5 views
0

로컬 네트워크에있는 기계의 IP를보고하는 표를 더 많이 또는 더 적게 찾고, 발견 할 수 있어야합니다. 192.168.1.111 - 192.168.1.120PHP를 통해 네트워크상의 기계의 '상태'얻기

에서

내가 20 개 기계, 고정 IP 주소를 모두 설정 한

, 어떻게 기계가 '온라인'인지 확인하고 상태가 다시 웹 페이지의보고 확인할 수 있습니까?

현재, 나는이 일을 해요 :

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

?> 

I 나는 새로운 무언가가, 데이터 출력되지 이것이 않는 잘못된 것입니다 (나는 그것을 확신 해요)하지만 경우에 PHP로, 그래서 용서해주십시오 제대로 작동하고 로컬 웹 사이트에 '핑백'하는 데에도 매우 오랜 시간이 걸립니다.

위의 스크립트가 자신의 파일에 있으며, <?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

다음, 또는 사용하여/빈/핑 (ping)을 시도하십시오 -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

트릭을 했나요! 고맙습니다 :) –