2012-03-04 62 views
0

我有一個數據庫主機和端口,我想知道是否有嚴格的PHP方式,一次ping所有的人,每30分鐘記錄一次。PHP一次和定時間隔ping多個IP地址

編輯:忘了補充..我是初學者

+0

那麼,你不能ping通端口,但你可以ping通IP地址。 – 2012-03-04 15:40:50

+0

我已經有辦法ping通它們並返回東西,我只是希望能夠定時ping它們並記錄它,而不是當我刷新頁面時(即它當前正在ping它) – unlucky4ever 2012-03-04 15:42:40

回答

3

你可以只使用一個任務調度比如cron,但如果你真的想要重複任務的腳本本身中指定的時間間隔,你可以用sleep()usleep()結合的循環:

while (true) { 

/* 
    Perform pings here and write output to some file 
    If the functions write directly to stdout, you can use 
    ob_start() and ob_get_clean() to catch the output 
    and write it to a log file instead. 
*/ 

sleep(1800); // 30 minutes in seconds 
} 

隨着這種方法你應該禁用PHP的時間限制設置,無論是在php.ini或set_time_limit(0)

2

這聽起來像你已經有一個現成的腳本執行你所需要的功能。我建議修改這個腳本(如果需要)從命令行運行,而不是作爲網頁運行。即,不要依賴諸如$ _GET或$ _POST之類的東西。運行一次檢查,記錄結果並退出。然後,只需添加一個cron作業即可每30分鐘運行腳本。

+0

如何修改它從網頁主機運行? – unlucky4ever 2012-03-04 17:43:50