设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 站长学院 > PHP教程 > 正文

同时ping多个ip找了最快的ip网的php实例

发布时间:2022-02-23 14:37 所属栏目:121 来源:互联网
导读:本文我们来分享一段可以同时ping多个ip然后对比找出网络最快的ip的php程序,这段程序用来找代理ip可是神器,为了翻墙方便,买了个vpn,转到osx下面官方没有提供合适的客户端,无法选择最快的线路,于是就自己写了个脚本,手动ping出最快的IP,代码如下: $servers = a
  本文我们来分享一段可以同时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')  //开源软件:Cuoxin.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();
      }
  }

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读