Hallo,
ich möchte gerne mit einem einfachen script feststellen, ob mein Laptop über WLAN verbunden ist, oder nicht.
Sinn des ganzen:
Wenn vdr versucht runterzufahren und mein Laptop ist über WLAN verbunden, dann darf vdr dass nicht -> shutdown abbrechen.
Mit suse 8.0 habe ich folgendes script verwendet:
$LEASE_FILE = "/var/lib/dhcp/dhcpd.leases";
open (FH, "< $LEASE_FILE");
while(<FH>){
$str = $_;
if ($str =~ m/lease 192.168.77.(\d\d\d)/) {
printf STDOUT "ping 192.168.77.$1 returns ";
system "ping -c 1 -n -q -w 2 192.168.77.$1 >/dev/null";
$exit_value = $? >> 8;
printf STDOUT "$exit_value\n";
if($exit_value == 0) {
close(FH);
exit (1);
}
}
}
Alles anzeigen
Ich gehe also einfach alle IP-Adressen im Lease-File durch und mache ein Ping drauf. Wenn der Rechner verbunden ist, liefert ping eine null sonst einen Fehlercode. Das werte ich aus.
Mit suse 8.2 geht das nicht mehr.
Wenn ich die WLAN-Karte aus meinem Laptop ziehe und ein ping mache, dann liefert ping trotzdem keinen Fehler.
Obwohl definitiv keine Verbindung mehr besteht.
Wird das irgendwo gecacht?
Wie kann ich einfach und sicher überprüfen, ob mein Laptop an meinem vdr-server hängt?
Ich habe gesehen, dass es auch netstat gibt. Aber wie werte ich da den output aus?
Danke im voraus
liebe Grüße
Gerhard