核心:利用Linux的Hotplug(热插拔) 参考:OpenWrt中的Hotplug脚本,该博主对OpenWrt有一些研究,可以关注看看
新建:/etc/hotplug.d/iface/99-ipreport:
vi /etc/hotplug.d/iface/99-ipreport
#!/bin/bash
[ "$ACTION" = ifup ] || exit 0
[ "$INTERFACE" = wan ] || exit 0
ip=$(ifconfig pppoe-wan | grep inet | awk '{print $2}' | cut -c 6-)
echo $ip > /tmp/ip.txt
会生成一个/tmp/ip.txt,里面有个外网ip地址
或者换一种if写法,将脚本外置方便修改
vi /etc/hotplug.d/iface/99-ipreport
#!/bin/bash
if [ $ACTION=ifup -a $INTERFACE=wan ]; then
sh /root/pppoe-success.sh
fi
/root/pppoe-success.sh的内容为访问一个网址汇报ip地址
vi /root/pppoe-success.sh
#!/bin/bash
curl -s '网址' > /dev/null
上面用到了curl,openwrt默认没有,可以在luci后台搜索curl安装
然后设置执行权限,ipreport无需设置执行权限,只需要设置外部脚本pppoe-success.sh执行权限即可
chmod +x /root/pppoe-success.sh
在luci后台将wan断开,然后再连接,或者直接重启路由器,即可看到效果
英文参考:官方文档说明
延伸学习:使用dnspod动态更新的pppoeip
延伸思考:通过该方法可以自动重新拨号获取ip,应用范围如:爬虫ip库,机器人投票等对破解ip限制的应用