自动更新白名单IP
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
jyhl 484ab4458e fix 2 weeks ago
README.MD fix 2 weeks ago
config.cfg fix python3.10 2 weeks ago
renew_ip.py fix python3.10 2 weeks ago
requirements.txt init 5 years ago

README.MD

IP白名单自动更新工具

这是一个用于自动检测公网IP变化并更新代理白名单的工具。当检测到公网IP发生变化时,会自动调用API更新指定索引位置的IP白名单。

功能特性

  • 自动检测公网IP变化
  • IP变化时自动更新代理白名单
  • 支持Python 2.7和Python 3.x
  • 可配置检测间隔和白名单索引
  • 详细日志记录

配置文件 config.cfg

创建config.cfg文件并配置以下参数:

[main]
# 代理API的URL地址
url=http://ip.16yun.cn:817/myip/pl/1111111-40a0-115b-1173-3a66ce51110f/?s=2222222&u=test

# IP白名单编号,从0开始
# 不同机器配置不同编号,相同公网IP的内网机器使用相同编号
index=0

# 示例说明:
# 场景1:三台不同公网IP的服务器
# 服务器A (公网IP: 1.1.1.1) -> index=0
# 服务器B (公网IP: 2.2.2.2) -> index=1  
# 服务器C (公网IP: 3.3.3.3) -> index=2

# 场景2:同一公网IP下的多台内网机器
# 办公室路由器公网IP: 4.4.4.4
# 内网机器A (192.168.1.10) -> index=0
# 内网机器B (192.168.1.11) -> index=0 (相同公网IP,使用相同索引)
# 内网机器C (192.168.1.12) -> index=0 (相同公网IP,使用相同索引)

# 场景3:混合环境
# 家庭网络 (公网IP: 5.5.5.5) -> index=0
# 公司网络 (公网IP: 6.6.6.6) -> index=1
# 云服务器 (公网IP: 7.7.7.7) -> index=2

# IP检测更新间隔,单位:秒
wait=60

配置参数说明

  • url: 代理服务商提供的API接口地址,用于更新IP白名单
  • index: IP白名单编号,从0开始计数
    • 不同的机器应配置不同的编号
    • 位于相同公网IP下的内网机器可以使用相同编号
  • wait: IP检测间隔时间,单位为秒(建议不少于30秒)

安装运行

  1. 安装依赖包:
pip install -r requirements.txt
  1. 创建requirements.txt文件(如果不存在):
requests
  1. 配置config.cfg文件

  2. 运行程序:

# 前台运行
python renew_ip.py

# 后台运行
nohup python renew_ip.py &

工作原理

  1. 程序启动后会定期(根据wait配置)检测当前公网IP
  2. 通过访问 http://current-ip.16yun.cn:802 获取当前公网IP
  3. 如果检测到IP发生变化,会调用配置的API接口更新白名单
  4. 更新时会在API URL后添加参数:index=[配置的索引]&newip=[新IP]
  5. 所有操作都会记录到log.txt日志文件中

日志文件

程序运行时会在当前目录生成log.txt日志文件,记录:

  • IP检测结果
  • IP变化通知
  • API调用结果
  • 错误信息

兼容性

  • 支持Python 2.7
  • 支持Python 3.x
  • 跨平台兼容(Windows/Linux/macOS)

API参考

白名单IP操作

基于代码逻辑,API调用方式:

自动更新指定索引的IP:

  • 程序会自动在配置的URL后添加参数:&index=[索引号]&newip=[新IP地址]
  • 例如:原URL&index=0&newip=192.168.1.100

手动API调用参考:

  • 添加IP到白名单:在链接后面加上 &limitip=append&newip=[ip]
  • 修改指定位置IP:在链接后面加上 &limitip=append&newip=[ip]&index=[索引]
    • [ip]: 需要添加/修改的IP地址
    • [index]: IP在白名单中的索引位置,-1为最后一个,0为第一个

注意事项

  1. 确保网络连接正常,能够访问IP检测和API接口
  2. API接口需要有效,否则IP更新会失败
  3. 建议将wait时间设置为60秒或更长,避免频繁请求
  4. 定期检查日志文件,确保程序正常运行