首页 > php开发 > 同时ping多个ip找了最快的ip网的php实例

同时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

随意转载^^但请附上教程地址。

标签:php实例 php翻墙

相关文章

发表留言