此方法适用于通过路由器拨号上网的宽带,若宽带通过光猫拨号上网则需要将光猫改为桥接模式并在路由器中配置宽带账号和密码

测试环境:
路由器:TP-LINK TL-WDR7800千兆版
硬件版本:1.0
软件版本:1.0.2
路由器内网IP地址:192.168.0.1

一、准备

确保系统当中安装了python3,且在命令提示符中输入python --version返回的是python3而不是python2
使用pip install requests安装requests库
使用Chrome或Firefox自带的调试工具抓包,找到正常登录路由器时提交的密文

用密文替换python脚本中的xxxxxxxxxxxxxxx(密文长度介于15~32之间,以实际抓包结果为准)
用路由器的实际内网IP替换脚本中的192.168.0.1

二、使用

python脚本如下:

import requests,json
from time import sleeprouteurl = "http://192.168.0.1/"
ipurl = "https://jsonip.com/"
logindata = '''{"method":"do","login":{"password":"xxxxxxxxxxxxxxx"}}'''
command = '''{"network":{"change_wan_status":{"proto":"pppoe","operate":"disconnect"}},"method":"do"}'''
headers = {"Content-Type":"application/json; charset=UTF-8",}
state = 0
try:res=requests.get(url=ipurl)
except BaseException as e:print("Cannot connect to Internet.Exiting...")sleep(3)exit()
IP1=json.loads(res.text)["ip"]
print("Current IP is "+IP1)while(state!=1):print("Changing IP..."+"\n")res=requests.post(url=routeurl,headers=headers,data=logindata)if (res.status_code == 401) :print("Password is incorrect. Exiting...")break'''print(res)''''''print(res.text)'''token=json.loads(res.text)["stok"]'''print(token)'''res=requests.post(url=routeurl+"stok="+token+"/ds",headers=headers,data=command)'''print(res)''''''print(res.text)'''print("Command has been sent")print("Waiting for Internet connection..."+"\n")while True:print("Connecting...")try:res=requests.get(url=ipurl,timeout=10)except BaseException as e:continuebreakprint("Connected"+"\n")IP2=json.loads(res.text)["ip"]print("Current IP is "+IP2)if (IP2 != IP1):state = 1print("\n"+"IP has changed")else:state = -1print("\n"+"Failed. Retrying...")print("------------")sleep(3)

将以上内容保存为.py文件并通过python执行即可
若想直接运行,可新建一个.bat文件,输入以下内容并保存

@python "C:\1.py"

其中英文双引号之间的内容用.py文件的路径代替
之后双击该.bat文件即可

2019.08.22

转载于:https://www.cnblogs.com/wh201906/p/11393399.html

更改路由器的外网IP相关推荐

  1. cisco+路由器+固定外网IP与NAT+设置

    Cisco 接入宽带配置方法浅析 电信宽带为2M, 分配给的固定IP地址:202.249.11.101 子网掩码:255.255.255.248 网关:202.249.11.20 局域网规划地址范围为 ...

  2. 博达路由器配置外网IP和默认路由

    int ethernet 0/0   //进入Ethernet 0/0端口 ip address 212.241.135.124 255.255.255.240   //设置ip和掩码 exit  / ...

  3. 路由器局域网IP(内网IP)和外网IP的关系

    本文转载自:http://wenku.baidu.com/view/16007a6e783e0912a2162a36.html 我们家里经常会有路由器,只要交点钱向服务商申请个账号,密码,再登上路由器 ...

  4. C#获取路由器外网IP,MAC地址

    C#实现的获取路由器MAC地址,路由器外网地址.对于要获取路由器MAC地址,一定需要知道路由器web管理系统的用户名和密码.至于获取路由器的外网IP地址,可以不需要知道路由器web管理系统的用户名和密 ...

  5. 如何查看外网IP地址

    转自:http://jingyan.baidu.com/article/e52e3615beb08340c60c51d2.html 不管你是用电脑直接拨号上网,还是在局域网中通过其它电脑或路由器上网, ...

  6. 查看华为路由器外网ip

    1.运行里面输入 cmd /k "ipconfig /all",解决运行ipconfig /all的时候不显示窗口.一闪就没有了的问题 2.登陆路由器的管理界面,找不到 :&quo ...

  7. 网吧局域网里的设置外网IP地址、设置内网IP地址、限制内网速度和路由器共享...

    现在啊,网吧的需求越来越高,同时在经济比较充裕的情况下,作为网吧的老板可能希望打造全千兆的网吧,让每个进入网吧的人都能充分体验高速的感觉,当然更重要的是在同行竞争中处于上游,特别是对网络游戏爱好者的吸 ...

  8. (SVN笔记)https外网IP端口映射内网IP端口访问SVN服务端

    目录 1.前言 2.花生壳优点与相关技术 3.设置SVN服务器 4.外网IP映射内网IP访问SVN Server 5.总结 1.前言         上一章介绍了局域网内https服务端配置与客户端联 ...

  9. 如何查看外网ip_内网ip和外网ip的联系以及连接过程

    我们每天都会访问各种各样的网站,比如淘宝,百度等等.不免会思考,我们的设备是如何连接上这些网址的呢?要想搞清楚这个问题,首先就得先搞清楚内网ip和外网ip的联系. 一.网络结构 如图,假设我们的计算机 ...

最新文章

  1. java内存模型-JMM
  2. 利用反射及ActionFilterAttribute实现MVC权限管理
  3. git配置服务器版仓库
  4. C#10,带来了Date和Time类型
  5. .net get set 初始化_.NET项目升级:可为空引用
  6. Robot Framework自动化测试框架核心指南-如何使用Java编写自定义的RobotFramework Lib
  7. Python学习笔记简单数据类型之字符串
  8. 传感器网络与物联网-1.射频识别技术
  9. 管理感悟:下结论的套路
  10. 粒子群算法求解0-1背包问题
  11. mac上面比较好用的软件
  12. oracle知否有用coherence,Oracle Coherence概述
  13. 关于打开CMD窗口一闪而退的解决方法
  14. UE4相机贴图,屏幕标注
  15. win10安装双系统ubuntu
  16. Java学完后就业方向有哪些呢?
  17. 美的智能SPA微气泡可视化冲牙器体验
  18. Excel:12 个操作小技巧
  19. WPF基础五:UI②内容元素Frame
  20. vps与云服务器区别在哪里?

热门文章

  1. android 触摸屏 不支持 配置,Android触摸屏配置调试
  2. php 递归遍历文件夹,php递归遍历目录 | 学步园
  3. java创建图片文件怎么打开_java 程序怎么打开一张图片?
  4. SpringSecurityFilterChain
  5. C++ 深拷贝和浅拷贝
  6. Pandas 文本数据方法 repeat( )
  7. python怎么提交作业_python分析作业提交情况
  8. Linux学习总结(61)——Ansible 快速入门学习
  9. Java基础学习总结(73)——Java最新面试题汇总
  10. JavaScript学习总结(9)——JS常用函数(一)