用PHP操作路由器

我们经常会碰到需要自动换IP的需求,比方模拟点击投票,数据采集被封IP,Alexa作弊等等,也就是需要经常换IP的,我们都可以通过PHP控制路由器来换IP,这样就不需要用按键精灵搞得那么累了。呵呵。
有的路由器是提供通过WEB方式管理路由器设置的,中间有一个功能就是断线和重新连接,我们就利用这个功能,呵呵,下面看代码:

function router($target=''){

    $server  = '192.168.1.1';            // IP address
    $host    = '192.168.1.1';            // Domain name
    $port    = 80;
    $referer = 'http://'.$host.$target;    // Referer
    $username = "admin";#ADSL的路由的用户名
    $password = "admin";#ADSL的路由的管理密码
    $authorization = base64_encode($username.":".$password); //echo $authorization; exit();
        $File = fsockopen($server, $port, $errno, $errstr, 30);
    if ($File) {        
        $out = "GET $target HTTP/1.1\r\n";
        $out .= "Host: $host\r\n";
        $out .= "Referer: $referer\r\n";
        $out .= "Authorization: Basic $authorization\r\n";
        $out .= "Connection: Closern\r\n";
                fputs($File, $out);
                $makeFile = $buffer = "";
                while ($buffer = fread($File,4096)){
                        $makeFile = $makeFile.$buffer;
        }
        fclose($File);
        }
}


router("/userRpm/StatusRpm.htm?Disconnect=%B6%CF%20%CF%DF&wan=1");



//下面附上php获取当前网关IP地址

function getIP(){
$target="/userRpm/StatusRpm.htm";
    $server  = '192.168.1.1';            // IP address
    $host    = '192.168.1.1';            // Domain name
    $port    = 80;
    $referer = 'http://'.$host.$target;    // Referer
    $username = "admin";#ADSL的路由的用户名
    $password = "admin";#ADSL的路由的管理密码
    $authorization = base64_encode($username.":".$password); //echo $authorization; exit();
        $File = fsockopen($server, $port, $errno, $errstr, 30);
    if ($File) {        
        $out = "GET $target HTTP/1.1\r\n";
        $out .= "Host: $host\r\n";
        $out .= "Referer: $referer\r\n";
        $out .= "Authorization: Basic $authorization\r\n";
        $out .= "Connection: Closern\r\n";
                fputs($File, $out);
                $makeFile = $buffer = "";
                while ($buffer = fread($File,4096)){
                        $makeFile = $makeFile.$buffer;
        }
        fclose($File);
        }
//匹配当前网关
$pattern="/\"[A-Z0-9]{2}\-[A-Z0-9]{2}\-[A-Z0-9]{2}\-[A-Z0-9]{2}\-[A-Z0-9]{2}\-[A-Z0-9]{2}\", \"([0-9\.]+)\"/s";
if(preg_match_all($pattern,$makeFile,$match)){
  $nowIP=$match[1][1];
}
return $nowIP;
}

你可能感兴趣的:(PHP,IP转换)