Mit dbus und NetworkManager im Script feststellen, ob Netzwerk verfügbar ist

Unter Linux kann man mit dem dbus-send-Tool wie folgt feststellen, ob aus Sicht des NetworkManager ein Netzwerk verfügbar ist:

dbus-send --print-reply --system --dest=org.freedesktop.NetworkManager \
--type=method_call /org/freedesktop/NetworkManager \
org.freedesktop.NetworkManager.state

Ein Rückgabewert von 3 bedeutet "Netzwerk verbunden". Wie gesagt ist das die Sichtweise des NetworkManager, d.h. es muß nicht unbedingt IP-Konnektivität vorhanden sein. Im Speziellen wird der NetworkManager auch dann eine 3 zurückliefern, wenn das Netzwerkkabel eingesteckt ist, statische IP-Adressen konfiguriert sind, sich der Rechner aber im falschen LAN befindet.