火车采集器软件交流官方论坛

 找回密码
 加入会员
搜索
火车采集器V9版免费下载火车浏览器 - 可视采集,万能群发,全自动脚本工具
查看: 4117|回复: 9

php重启路由

[复制链接]
发表于 2010-6-5 01:36:14 | 显示全部楼层 |阅读模式
本帖最后由 bcpxqz 于 2010-6-5 18:42 编辑

采集某某点评网站的时候,如果访问过快,防spam机制会锁定你的ip,这时候只好重启路由了,gg一下,发现了相关代码,稍修改了下,希望对大家采集有所帮助。
  1. //操作路由
  2. function router($target='')
  3. {

  4.       $server  = '192.168.0.1';            // IP address
  5.       $host    = '192.168.0.1';            // Domain name
  6.       $port    = 80;
  7.       $referer = 'http://'.$host.$target;    // Referer

  8.     $username = "admin";#路由的用户名
  9.     $password = "admin";#路由的管理密码
  10.     $authorization = base64_encode($username.":".$password);
  11.     $File = fsockopen($server, $port, $errno, $errstr, 50);
  12.       if ($File)
  13.       {
  14.               $out = "GET $target HTTP/1.1\r\n";
  15.               $out .= "Host: $host\r\n";
  16.               $out .= "Referer: $referer\r\n";
  17.               $out .= "Authorization: Basic $authorization\r\n";
  18.               $out .= "Connection: Close\r\n\r\n";

  19.               fputs($File, $out);

  20.               $makeFile = $buffer = "";
  21.               while ($buffer = fread($File,4096))
  22.               {
  23.                       $makeFile = $makeFile.$buffer;
  24.               }
  25.               fclose($File);
  26.               return $makeFile;

  27.       }
  28. }
  29. //断开
  30. function disconnectr() {
  31.     $url = '/if.cgi?redirect=sys_status.htm&failure=fail.htm&type=wan_state_reset&ifname=ppp0&ifstatus=Up&ifcmd=DISCONNECT';
  32.     //这个地址你可以通过firebug获得
  33.     router($url);
  34. }
  35. //连接
  36. function connectr() {
  37.     $url = '/if.cgi?redirect=sys_status.htm&failure=fail.htm&type=wan_state_reset&ifname=ppp0&ifstatus=Down&ifcmd=CONNECT';
  38.     //这个地址你可以通过firebug获得
  39.     router($url);
  40. }
  41. //状态
  42. function connects() {
  43.     $url="/sys_status.htm";
  44.     $str = router($url);
  45.     return $str;
  46. }
  47. //是否连接成功
  48. function checkconnetr($step,$time) {
  49.     $find = 'cableDSL="3"-1';
  50.     $str = connects();
  51.     if(strpos($str,$find)){
  52.        $url = "?step=".$step;
  53.        echo '路由器重启ok';
  54.        echo "<script>setTimeout("document.location='$url'",$time)</script>";
  55.        return true;
  56.     }else{
  57.         //重检测
  58.         if(isset($_GET['page'])){
  59.             $page = intval($_GET['page']);
  60.         }else{
  61.             $page=1;
  62.         }
  63.         if($page==6){
  64.             echo '路由器操作超时';
  65.         }else{
  66.             $url = "?step=5&page=".($page+1)."&"."tostep=$step";
  67.             echo "<script>setTimeout("document.location='$url'",9000)</script>";
  68.         }
  69.     }

  70. }

  71. function reset_R($page,$step,$time=2000) {
  72.     echo '正在重启路由器';
  73.     if(isset($_GET['page'])){
  74.          $page = intval($_GET['page']);
  75.       }else{
  76.          $page=1;
  77.      }
  78.      if($page==1){
  79.          disconnectr();
  80.          connectr();
  81.          return checkconnetr($step,$page);
  82.      }else{
  83.         return checkconnetr($step,$page);
  84.      }
  85. }
复制代码
发表于 2010-6-5 12:19:30 | 显示全部楼层
这思路很有意思哈。^_^
发表于 2010-6-5 17:08:45 | 显示全部楼层
麻烦,直接用个动态proxy调度
发表于 2010-6-5 18:17:30 | 显示全部楼层
哦 ?  什么 个思路啊
 楼主| 发表于 2010-6-5 18:41:15 | 显示全部楼层
回复 3# aven
谢谢,这个思路不错,省去了断开连接和循环检测的时间。俺比较菜,不知道在火车头里能实现不?
发表于 2010-6-5 19:19:33 | 显示全部楼层
使用动态IP代理
 楼主| 发表于 2010-6-5 22:08:43 | 显示全部楼层
回复 6# zjyk1984
谢谢!
发表于 2010-6-6 11:06:34 | 显示全部楼层
呵呵。。思路不错。。
发表于 2010-6-6 14:05:58 | 显示全部楼层
牛B,这也行!!!!!!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入会员

x
 楼主| 发表于 2010-12-8 14:47:23 | 显示全部楼层
我尝试了代理,不过还是这种方便,代理的链接有点慢(可能是我找的代理太垃圾)
您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

企业微信|手机版|Archiver|火车采集器官方站 ( 皖ICP备06000549 )

GMT+8, 2026-5-3 19:20

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表