全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1252|回复: 4

[经验] openwrt脚本:判断是否获取到公网IP,否则重新拨号

[复制链接]
发表于 2023-6-22 11:52:37 | 显示全部楼层 |阅读模式
如题,本地联通有概率获取到公网ip,所以写个脚本,稳定运行半年了,分享出来。
  1. cat  /mnt/sdb1/bin/pppoe-ip.sh
  2. #!/bin/bash

  3. # 计数器,用于记录重新拨号的次数
  4. count=0

  5. while true; do
  6.     # 从 4.ipw.cn 获取公网 IP 地址
  7.     ip=$(curl -s https://4.ipw.cn/ | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}')

  8.     # 从网卡pppoe-wan获取当前 IP 地址
  9.     current_ip=$(ip addr show pppoe-wan | awk '/inet /{print substr($2,1)}')

  10.     # 判断当前 IP 是否为公网 IP
  11.     if [[ "$ip" != "$current_ip" ]]; then
  12.         # 当前 IP 不是公网 IP,执行重新拨号
  13.         echo $ip  $current_ip
  14.         ifdown wan
  15.         sleep 5
  16.         ifup wan
  17.         count=$((count+1))
  18.         echo "重新拨号 ${count} 次"

  19.         # 判断是否达到重新拨号次数上限
  20.         if [[ "$count" -ge 10 ]]; then
  21.             echo "已达到重新拨号次数上限,退出循环"
  22.             break
  23.         fi
  24.     else
  25.         # 当前 IP 是公网 IP,退出循环
  26.         echo "当前 IP 为公网 IP,退出循环"
  27.         echo $ip
  28.         break
  29.     fi

  30.     # 休眠 10 秒钟
  31.     sleep 10
  32. done
复制代码


添加到开机脚本和计划脚本(每分钟执行一次):
* * * * * nohup bash   /mnt/sdb1/bin/pppoe-ip.sh  &


不会写服务,也不会写心跳检测,如果有大佬进行完善更好。



注意:passwall等软件要ipw.cn域名添加到直连白名单。
发表于 2023-6-22 12:05:22 | 显示全部楼层
- -,我的电信联通播上就是公网,移动没有
发表于 2023-6-22 12:11:51 | 显示全部楼层
不折腾,ipv6公网挺好的每个设备都有公网
发表于 2023-6-22 12:14:30 来自手机 | 显示全部楼层
koolshare以前有个插件就是重拨获取公网ip
发表于 2023-6-22 12:31:08 | 显示全部楼层
是不是公网IP应该是运营商固定分配的吧,难道说你没有申请公网IP,运营商也会给你分配?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-6 13:59 , Processed in 0.064811 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表