Автоматически уведомлять, когда меняется IP?
Есть ли способ, которым я могу отправить уведомление себе при изменении локального IP-адреса DHCP? Могу ли я использовать libnotify
?
Я использую Xubuntu. Ниже приведен скриншот, на котором показано, как выглядит уведомление. Могу ли я сделать так, чтобы оно выглядело так?
ht tps:https://ask-ubuntu.ru/images/928b00baed218a9612e43d44e7b1337253624570.png
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
Если все работает нормально, добавьте его в Startup Applications
объяснение
- Каждые две секунды скрипт проверяет текущий локальный IP-адрес
ifconfig -a
- в случае изменения отправляет уведомление.
Заметка
Я проверил это на Ubuntu Unity, но это не должно иметь значения; оба используют notify-osd. Если по какой-то причине это не сработает, пожалуйста, прокомментируйте.