Dagens Slackintegration

Idag satte jag upp en utvecklingsserver på en Raspberry Pi 3 för mitt kandidatprojekt. Vi hade problemet att den byter IP-adress med jämna mellanrum (den är uppkopplad till eduroam). Lösningen var en liten webhook till Slack och nu får vi ett meddelande varje gång servern byter IP.

Det var fantastiskt lätt och kul att skriva ett litet program i Python för att kolla om IP-adressen ändrats och meddela oss i Slack. Med ett enkelt cronjobb så såg jag till att vi alltid vet vilken IP-adress servern har. Är du nyfiken på hur jag gjorde så kan du se skriptet nedan.

 

import netifaces as ni
import requests
from config import WEBHOOK, INTERFACE, SAVE_FILE
import time


def get_ip():
    try:
        ip = ni.ifaddresses(INTERFACE)[ni.AF_INET][0]['addr']
    except KeyError:
        ip = None
    return ip

if __name__ == "__main__":
    tries = 0
    ip = get_ip()
    while not ip and tries < 15:
        time.sleep(60)
        ip = get_ip()
        tries += 1
    file = open(SAVE_FILE, 'r')
    old_ip = file.read()
    file.close()
    if old_ip != ip:
        payload = {'text': ip, 'username': 'pi-bot', 'icon_emoji': ':robot_face:'}
        requests.post(WEBHOOK, json=payload)
        file = open(SAVE_FILE, 'w')
        file.write(ip)
        file.close()