本文我們來分享一段可以同時ping多個ip然后對比找出網(wǎng)絡(luò)最快的ip的php程序,這段程序用來找代理ip可是神器,為了翻墻方便,買了個vpn,轉(zhuǎn)到osx下面官方?jīng)]有提供合適的客戶端,無法選擇最快的線路,于是就自己寫了個腳本,手動ping出最快的IP,代碼如下:
- $servers = array(
- array('VIP荷蘭線路01','nl01.yyuu.me','81.4.105.195','4122或3108'),
- array('VIP法國線路01','fr01.yyuu.me','176.31.206.242','4122或3108'),
- array('VIP意大利線路01','it01.yyuu.me','37.247.48.226','4122或3108'),
- array('VIP新加坡線路01','sg01.yyuu.me','128.199.69.209','4122或3108') //開源軟件:Vevb.com
- );
- //配合pcntl_signal使用
- declare(ticks=1);
- //最大的子進(jìn)程數(shù)量
- $max = count($servers);
- //當(dāng)前的子進(jìn)程數(shù)量
- $child = 0;
- //當(dāng)子進(jìn)程退出時,會觸發(fā)該函數(shù)
- function sig_handler($sig) {
- switch($sig) {
- case SIGCHLD:
- //do something
- }
- }
- //注冊子進(jìn)程退出時調(diào)用的函數(shù)
- pcntl_signal(SIGCHLD, "sig_handler");
- foreach($servers as $server){
- $pid = pcntl_fork();
- if($pid){
- //echo 'main thread start',PHP_EOL;
- }else{
- exec('ping -c 1 '.$server[2],$result);
- echo $server[1].' '.$server[2].' '.$result[1],PHP_EOL;
- exit();
- }
- }
新聞熱點(diǎn)
疑難解答