This article will introduce to you a PHP program to restart the router to change the IP address. If you are interested in this, feel free to refer to it. When collecting large amounts of data, the "self-protection" of the other party's server is often triggered, and access is restricted if requests are too frequent. At this time, it takes a long time (ranging from ten minutes to dozens of minutes) to restore access, so the speed of data collection is very limited. There are two solutions: 1 Bypass the verification code mechanism through image recognition and tell the server: I am not a spider, I am a human. If you don’t believe me, look, I can understand the verification code. 2 Change the IP and tell the server: I am not Zhang San, I am Li Si. If you don’t believe me, look, my IP address is different from Zhang San’s. The first method is a little more difficult and unreliable. When the other party's server upgrades the verification code, we will have to follow up, which is a lot of trouble; and ISPs (Telecom, China Unicom, China Mobile) have many IPs, and every time A new IP will be assigned every time you connect to the Internet, so method two is better. Taking my TP-LINK router as an example, find "Network Parameters" > "WAN Port Settings", and you can see the "Automatic Connection" setting and the "Disconnect" button. Every time you click the "Disconnect" button, you will redial the number to the ISP, and at this time you will change your IP. However, the collection of large batches of data takes a long time, and it is impossible to always have someone guarding it. It is best to do it in the PHP code. Once it is found to be restricted, restart it. This returns to the theme of this article: "Through PHP Function to restart the router to change IP》 Open the debug mode of the chrome browser, then click the "Disconnect" button and look at the "Network" network request. You can see that the actual executed address is: "http://192.168.0.1/userRpm/PPPoECfgRpm.htm?wantype=2&acc =65541234&psw=Hello123World&VnetPap=0&linktype=2&Disconnect=%B6%CF+%CF%DF” Then simulate requesting this address, and after testing, the IP address can indeed be changed (the current IP can be seen through http://api.akcms.com/myip.php). The next step is simple: just use PHP and Curl components to implement this request process. I encapsulated a function resetip. The specific code is as follows:
代码如下 | 复制代码 |
<?php //本脚本测试重启路由器的WLAN连接 resetip(); function resetip() { $username = 'admin'; $password = '<span>123456</span>'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://192.168.0.1/userRpm/PPPoECfgRpm.htm?wantype=2&acc=<span>65541234</span>&psw=Hello123World&VnetPap=0&linktype=2&Disconnect=%B6%CF+%CF%DF'); curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_exec($ch); curl_close($ch); } ?> Copy after login |