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

测试环境:

路由器: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 sleep routeurl = "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:
continue break print("Connected"+"\n")
IP2=json.loads(res.text)["ip"]
print("Current IP is "+IP2)
if (IP2 != IP1):
state = 1
print("\n"+"IP has changed")
else:
state = -1
print("\n"+"Failed. Retrying...")
print("------------") sleep(3)

将以上内容保存为.py文件并通过python执行即可

若想直接运行,可新建一个.bat文件,输入以下内容并保存

@python "C:\1.py"

其中英文双引号之间的内容用.py文件的路径代替

之后双击该.bat文件即可

2019.08.22

更改路由器的外网IP的更多相关文章

  1. 更新TP-LINK路由器的外网IP到花生壳动态IP解析

    ------------------------------------------------------------------------------- 以下内容可能还是存在问题,等之后有时间再 ...

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

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

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

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

  4. Windows Azure 设置虚拟机静态外网IP地址

    官方说法叫做“虚拟公共IP地址保留”,为容易理解,我们称之为静态外网IP地址. 如果在国内使用国际版Windows Azure服务时强烈推荐为虚拟机设置IP地址保留. 由于Windows Azure ...

  5. 【不积跬步,无以致千里】linux下如何查看自己的外网IP

    局域网的服务器是通过ADSL路由器连接外网的,但ADSL是从ISP运营商那儿通过动态获得IP的,那么我怎么知道自己的外网地址是多少呢?今天得到几个办法:curl -s http://whatismyi ...

  6. [转]用apache反向代理解决单外网ip对应内网多个web主机的问题

    用apache反向代理解决单外网ip对应内网多个web主机的问题 转载一个有独立外网IP,需内网服务器对外发布的例子,是应用apache虚拟主机的. 来源地址:http://www.itshantou ...

  7. 首页技术支持常见问题宽带外网IP显示为10、100、172开头,没有公网IP,如何解决?

    1.表现形式: 路由器拨号获得的公网IP变成了一个以100开头的IP(或者是10.172开头),而打开ip138.com查询却又是另外一个IP,将100开头的这个IP到百度去查询下则显示所在区域为美国 ...

  8. 内网IP外网IP的关联及访问互联网原理

    首先解释一下“内网”与“外网”的概念: 内网:即所说的局域网,比如学校的局域网,局域网内每台计算机的IP地址在本局域网内具有互异性,是不可重复的.但两个局域网内的内网IP可以有相同的. 外网:即互联网 ...

  9. Android 获得本地IP地址、外网IP地址、本设备网络状态信息、本地Mac地址

    本地内网IP和外网IP的区别: 根据我的经验一台电脑需要两个ip才可以上网,一个是本地的内网ip 一个是外网的ip 本地的ip 一般是192.168.1.2这种样子  只要在不同的路由器上可以重复 外 ...

随机推荐

  1. 简单了解一下K8S,并搭建自己的集群

    距离上次更新已经有一个月了,主要是最近工作上的变动有点频繁,现在才暂时稳定下来.这篇博客的本意是带大家从零开始搭建K8S集群的.但是我后面一想,如果是我看了这篇文章,会收获什么?就是跟着步骤一步一走吗 ...

  2. 开发 Laravel 扩展的基本流程

    创建一个空的laravel项目 composer create-project --prefer-dist laravel/laravel pkg 在新建的 laravel 项目中建立如下目录 qia ...

  3. 分析比较 opacity: 0、visibility: hidden、display: none 优劣和适用场景

    总结: 结构: display:none: 会让元素完全从渲染树中消失,渲染的时候不占据任何空间, 不能点击, visibility: hidden:不会让元素从渲染树消失,渲染元素继续占据空间,只是 ...

  4. Windows10 中的字母映射表

    有很多朋友为寻找特殊字符串而感到烦恼, windows10中的字符映射表有所有字体 包含的特殊符号 windows键 + R键 输入 charmap 点击确定 即可出现 字母映射表 可在字符的下拉按钮 ...

  5. CodeForces - 556D Case of Fugitive (贪心+排序)

    Andrewid the Android is a galaxy-famous detective. He is now chasing a criminal hiding on the planet ...

  6. Codeforces Round #590 (Div. 3)

    A. Equalize Prices Again 题目链接:https://codeforces.com/contest/1234/problem/A 题意:给你 n 个数 , 你需要改变这些数使得这 ...

  7. GHOST CMS - Package.json

    Package.json The package.json file is a set of meta data about a theme. package.json 文件是一组关于主题的元数据. ...

  8. conda docker镜像

    之前的python环境,使用ubuntu安装pip来安装python依赖,但是遇到缺少某些库的版本,比如一个项目需要用到faiss,pip只有最新的1.5.3版本,但是这个版本使用了较新的CPU指令, ...

  9. python 多线程编程之threading模块(Thread类)创建线程的三种方法

    摘录 python核心编程 上节介绍的thread模块,是不支持守护线程的.当主线程退出的时候,所有的子线程都将终止,不管他们是否仍在工作. 本节开始,我们开始介绍python的另外多线程模块thre ...

  10. 服务发现(consul)搭建

    服务发现(consul)搭建 下载最新版 consul 本人使用的版本为1.5.1,操作系统:window server 2008 consul部署的时候分为客户端和服务端,本次操作服务器2台,客户端 ...