答案1
这需要一个小的背景脚本:
#!/usr/bin/env python3
import subprocess
import time
ip1 = [s for s in subprocess.check_output([
"ifconfig", "-a"]).decode("utf-8").split() \
if "addr:192" in s][0]
while True:
time.sleep(2)
ip2 = [s for s in subprocess.check_output([
"ifconfig", "-a"]).decode("utf-8").split() \
if "addr:192" in s][0]
if ip2 != ip1:
subprocess.Popen([
"notify-send", "Ip address changed",
"New address: "+ip2.replace("addr:", "")
])
ip1 = ip2
如何使用
- 将脚本复制到一个空文件中,另存为
watch_ipchange.py
从终端进行测试运行:
python3 /path/to/watch_ipchange.py
如果一切正常,将其添加到启动应用程序
解释
- 每隔两秒钟,脚本就会检查当前的本地 IP 地址
ifconfig -a
- 如果发生变化,它会发送通知。
笔记
我在 Ubuntu Unity 上测试过,但应该没什么区别;两者都使用通知 OSD。但如果由于某种原因无法正常工作,请发表评论。