欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

用PHP操作路由器

程序员文章站 2022-05-30 09:41:27
...

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

我们经常会碰到需要自动换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;
}