Автоматически уведомлять, когда меняется 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

Как пользоваться

  1. Скопируйте скрипт в пустой файл, сохраните его как watch_ipchange.py
  2. Протестируйте его из терминала:

    python3 /path/to/watch_ipchange.py
    
  3. Если все работает нормально, добавьте его в Startup Applications

объяснение

  • Каждые две секунды скрипт проверяет текущий локальный IP-адрес ifconfig -a
  • в случае изменения отправляет уведомление.

Заметка

Я проверил это на Ubuntu Unity, но это не должно иметь значения; оба используют notify-osd. Если по какой-то причине это не сработает, пожалуйста, прокомментируйте.

Другие вопросы по тегам