|
|
本帖最后由 bcpxqz 于 2010-6-5 18:42 编辑
采集某某点评网站的时候,如果访问过快,防spam机制会锁定你的ip,这时候只好重启路由了,gg一下,发现了相关代码,稍修改了下,希望对大家采集有所帮助。- //操作路由
- function router($target='')
- {
- $server = '192.168.0.1'; // IP address
- $host = '192.168.0.1'; // Domain name
- $port = 80;
- $referer = 'http://'.$host.$target; // Referer
- $username = "admin";#路由的用户名
- $password = "admin";#路由的管理密码
- $authorization = base64_encode($username.":".$password);
- $File = fsockopen($server, $port, $errno, $errstr, 50);
- 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: Close\r\n\r\n";
- fputs($File, $out);
- $makeFile = $buffer = "";
- while ($buffer = fread($File,4096))
- {
- $makeFile = $makeFile.$buffer;
- }
- fclose($File);
- return $makeFile;
- }
- }
- //断开
- function disconnectr() {
- $url = '/if.cgi?redirect=sys_status.htm&failure=fail.htm&type=wan_state_reset&ifname=ppp0&ifstatus=Up&ifcmd=DISCONNECT';
- //这个地址你可以通过firebug获得
- router($url);
- }
- //连接
- function connectr() {
- $url = '/if.cgi?redirect=sys_status.htm&failure=fail.htm&type=wan_state_reset&ifname=ppp0&ifstatus=Down&ifcmd=CONNECT';
- //这个地址你可以通过firebug获得
- router($url);
- }
- //状态
- function connects() {
- $url="/sys_status.htm";
- $str = router($url);
- return $str;
- }
- //是否连接成功
- function checkconnetr($step,$time) {
- $find = 'cableDSL="3"-1';
- $str = connects();
- if(strpos($str,$find)){
- $url = "?step=".$step;
- echo '路由器重启ok';
- echo "<script>setTimeout("document.location='$url'",$time)</script>";
- return true;
- }else{
- //重检测
- if(isset($_GET['page'])){
- $page = intval($_GET['page']);
- }else{
- $page=1;
- }
- if($page==6){
- echo '路由器操作超时';
- }else{
- $url = "?step=5&page=".($page+1)."&"."tostep=$step";
- echo "<script>setTimeout("document.location='$url'",9000)</script>";
- }
- }
- }
- function reset_R($page,$step,$time=2000) {
- echo '正在重启路由器';
- if(isset($_GET['page'])){
- $page = intval($_GET['page']);
- }else{
- $page=1;
- }
- if($page==1){
- disconnectr();
- connectr();
- return checkconnetr($step,$page);
- }else{
- return checkconnetr($step,$page);
- }
- }
复制代码 |
|