同时ping多个ip找了最快的ip网的php实例
本文我们来分享一段可以同时ping多个ip然后对比找出网络最快的ip的php程序,这段程序用来找代理ip可是神器,为了翻墙方便,买了个vpn,转到osx下面官方没有提供合适的客户端,无法选择最快的线路,于是就自己写了个脚本,手动ping出最快的IP,代码如下:
<?php $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' ) ); //配合pcntl_signal使用 declare(ticks = 1); //最大的子进程数量 $max = count($servers); //当前的子进程数量 $child = 0; //当子进程退出时,会触发该函数 function sig_handler($sig) { switch ($sig) { case SIGCHLD: //do something } } //注册子进程退出时调用的函数 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(); } }
文章网址:http://www.phprm.com/develop/fs9216.html
随意转载^^但请附上教程地址。