Ich habe einen Raspberry Pi 4 gekauft. Also habe ich Arch Linux in die SD-Karte eingelegt.
Ich habe die LED diesmal nicht separat gekauft, aber sie wird im Originalzustand betrieben, aber es gibt ein Problem.
** Es ist schwierig zu überprüfen, wo Sie verbunden sind **
Grundsätzlich wird DHCP verwendet und es gibt keinen Monitor. Daher ist es schwierig, die IP-Adresse zu überprüfen, unabhängig davon, ob es sich um eine Kabelverbindung oder eine WLAN-Verbindung handelt. Wie der Titel schon sagt, habe ich mich dieses Mal entschlossen, "die Verbindungsinformationen von mir selbst zu erhalten, wenn die Netzwerkverbindung hergestellt ist".
py:/etc/NetworkManager/dispatcher.d/notify-connection-information.py
#!/usr/bin/env python
import json
import os
import sys
from urllib.request import urlopen
WEBHOOK_URL = 'https://hooks.slack.com/services/THISIS/SLACK/WEBHOOK'
def main(conn_id, ip_addr):
payload = {
'username': 'info',
'icon_emoji': ':strawberry:',
'text': f'*attakei-pi* has connected to {conn_id}\n IP address is `{ip_addr}`',
'channel': '@attakei',
}
urlopen(WEBHOOK_URL, json.dumps(payload).encode())
if __name__ == '__main__':
argv = sys.argv[1:]
# if argv[0] != 'wlan0' or argv[1] != 'up':
if argv[1] != 'up':
sys.exit(0)
ip_addr = os.environ['DHCP4_IP_ADDRESS']
conn_id = os.environ['CONNECTION_ID']
main(conn_id, ip_addr)
Es ist ein Daemon (+ Tool) zum Verwalten verschiedener Dinge im Zusammenhang mit der Netzwerkverbindung. Es verwaltet SSIDs und stellt automatisch eine Verbindung zu bereits registrierten SSIDs her.
Es gibt auch systemd-networkd
usw., aber momentan benutze ich dies.
Jetzt verfügt NetworkManager über eine Dispatcher-Funktion, mit der Sie "einen Befehl zum Teilen des Netzwerks als Ereignis ausführen" können. In den im ArchLinux-Wiki veröffentlichten Beispielen werden Beispiele wie "WLAN beim Herstellen einer Kabelverbindung deaktivieren (+ umgekehrt)" und "VPN-Verbindung weiterhin herstellen, wenn eine Verbindung zu einem bestimmten Netzwerk hergestellt wird" beschrieben. Ich bin. Dieses Mal habe ich unter Bezugnahme auf diese Skripte das obige Skript erstellt, das "die verwendete SSID" und "IP-Adresse" für den angegebenen Slack-Kanal beim Herstellen einer Verbindung zum Netzwerk deklariert ".
Soweit ich weiß, übergibt Disptcher bei der Ausführung des Befehls die folgenden Informationen.
up
= verbunden)Organisieren Sie anhand der Bedingungen, die Sie auslösen möchten, wo Sie Informationen und Verhalten erhalten.
Used SSID
"CONNECTION_ID
IP address
"DHCP4_IP_ADDRESS
.Nachdem Sie die benötigten Informationen haben, können Sie den Code schreiben. Bitte beachten Sie den zuerst aufgeführten Code.
Das Skript wird direkt aufgerufen. Vergessen Sie also nicht, Ausführungsberechtigungen zu erteilen.
URLs
Recommended Posts