2012-08-09 41 views
0

我想編寫一個類似於Enterprise Network Console的PHP腳本,但是用於PC和設備的LAN而不是服務器的WAN。如何判斷我的網絡上的某臺計算機是否使用PHP?

我希望能夠檢查PC,複印機等是否連接到網絡。我想知道它們是否關閉,但這是不可能的,因爲PC忽略數據包,除非它是一個喚醒LAN包,對吧?

檢查PC是否開啓或關閉的最佳方法是什麼?我使用fSocketOpen()來測試服務器,但大多數PC不是服務器。他們對ping做出響應,但沒有端口可用於連接,這意味着PHP's fSocketOpen()將無法​​正常工作,但ping就是這樣。

+1

爲什麼你會嘗試在PHP中做到這一點? – meagar 2012-08-09 00:45:35

+0

我需要通過網絡界面訪問它,因爲我的VLAN部分是物理上相距數英里的許多部分之一。 – CoderWalker 2012-08-09 00:47:55

+2

我從帖子中刪除了*噸*或多或少的絨毛,並對其進行了編輯以提出具體的可回答問題,從而避免了被關閉。你的帖子應該包含*一個問題*,並且應該儘可能短。沒有理由對所有這些背景信息做出如此之大的貢獻,只是出來並*提出問題*。此外,請[不要添加簽名或標語到您的帖子](http://stackoverflow.com/faq#signatures)。 – meagar 2012-08-09 00:49:56

回答

2

您可以使用系統命令並捕獲結果的stdout。

只需搜索PHP的popen(http://uk3.php.net/popen)示例。

echo run('ping 192.168.1.5'); 

function run($command) { 
    $command .= ' 2>&1'; 
    $handle = popen($command, 'r'); 
    $log = ''; 

    while (!feof($handle)) { 
     $line = fread($handle, 1024); 
     $log .= $line; 
    } 

    pclose($handle); 
    return $log; 
} 
+0

這與此有何聯繫? – CoderWalker 2012-08-09 01:03:49

+1

不要打擾查找端口,創建套接字或模仿ping命令。通過PHP執行它們來使用OS命令。 我正在給我的答案添加一個示例。 – Tim 2012-08-09 01:12:01

相關問題