同时ping多个ip找了最快的ip网的php实例
发布:smiling 来源: PHP粉丝网 添加日期:2015-04-13 09:46:28 浏览: 评论:0
本文我们来分享一段可以同时ping多个ip然后对比找出网络最快的ip的php程序,这段程序用来找代理ip可是神器,为了翻墙方便,买了个vpn,转到osx下面官方没有提供合适的客户端,无法选择最快的线路,于是就自己写了个脚本,手动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') //开源软件:phpfensi.com
- );
- //配合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();
- }
- }
Tags: php实例 php翻墙
- 上一篇:PHP异步执行实现的四种方法详解
- 下一篇:PHP接口开发加密技术实例原理与例子
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)