Die Überprüfung, ob die Mac-Adresse im Netzwerk vorhanden ist, funktioniert immer noch nicht (Ping -b und ARP).

Die Überprüfung, ob die Mac-Adresse im Netzwerk vorhanden ist, funktioniert immer noch nicht (Ping -b und ARP).

Dies ist eine Art Fortsetzung vonDasBeitrag von mir.

Ich habe die Mac-Adresse meines Telefons (Samsung Galaxy S9, aber das sollte keine Rolle spielen). Ich möchte prüfen, ob es im Netzwerk ist oder nicht. Es hat keine statische IP, also muss ich es anhand seiner Mac-Adresse prüfen.

Ich werde mit auf die Mac-Adresse meines Telefons verweisen [1].

  • Auf meinem Telefon ist die zufällige Mac-Adresse für das Netzwerk deaktiviert (das war im vorherigen Beitrag nicht der Fall). Früher wurde bei jeder Verbindung mit meinem Netzwerk eine zufällige Mac-Adresse generiert, jetzt nicht mehr.
  • So überprüfe ich, ob die Mac-Adresse im Netzwerk ist:
    ping -b 192.168.2.255 -c 20
    arp | grep -i "[1]"
    

Dies ist das „Protokoll“ der Ereignisse:

#phone connected to network
ping -b 192.168.2.255 -c 20 &> /dev/null
arp | grep -i "[1]"
-> successful

#phone NOT connected to network (turned of wifi on phone)
ping -b 192.168.2.255 -c 20 &> /dev/null
arp | grep -i "[1]"
-> successful

Beim zweiten Mal sollte es nicht erfolgreich sein. Das Telefon ist nicht mit dem Netzwerk verbunden, zeigt es aber trotzdem in der ARP-Ausgabe an.

Mein Telefon hat keine statische IP-Adresse, aber wenn ich es mit dem Netzwerk verbinde, erhält es fast immer dieselbe IP-Adresse. Das ist in Ordnung. Die ping -bAusgabe war immer korrekt. Wenn mein Telefon mit dem Netzwerk verbunden ist, sehe ich die IP-Adresse, die es fast immer erhält, in der Liste (des pingBefehls). Wenn mein Telefon nicht verbunden ist, sehe ich nie seine „Standard“-IP-Adresse in der Ausgabe. Ping funktioniert also und ist „aktuell“.

Ich gehe also davon aus, dass ARP nicht so „aktuell“ ist wie Ping (aber das ist nur meine grobe Vermutung). Ich denke, dass ARP seine Tabelle nicht aktualisiert, obwohl Ping eine neue „erstellt“ hat. Aber das ist meine Meinung basierend auf einem Kommentar im vorherigen Beitrag: „Sie führen bereits einen Broadcast-Ping aus, ping -b 192.168.2.255. Dadurch sollte die ARP-Tabelle für alle Online-Geräte mit der IP-Adresse 192.168.2 neu gefüllt werden..*"

Helfen!

Antwort1

Wenn SieARPTabelle, um festzustellen, ob Ihr Telefon mit dem Netzwerk verbunden ist oder nicht, müssen Sie Ihr Telefon entfernenARPEintrag von Ihrem ComputerARPTabelle. Andernfalls können Sie keine Änderung feststellen, da der vorherige Eintrag bestehen bleibt.

Sie können bestimmteARPEintrag mit arp -d <IP_ADDR>dem Befehl und entfernen Sie alle Einträge mit sudo ip neigh flush all.

Aber ich denke, Sie solltennmapzum Scannen, außerdem müssen Sie nicht reinigenARPTabelle nicht mehr. Sie können dieses Skript verwenden.

#!/bin/bash

mac="$1"
# Scanning network, and obtaining IP address of specfied MAC address, if exists.
PHONEIP=$(sudo  nmap -sP -n 192.168.2.0/24 | grep -B2 "$mac" | grep -Eoi "192\.168\.2\.[0-9]+")
if [[ $PHONEIP == "" ]];then
    echo "$MAC not found."
else
    echo "$MAC found at $PHONEIP"
fi

Sie müssen jedoch als erstes Argument die MAC-Adresse Ihres Telefons angeben, oder Sie können die Zeile mac="$1"in ändern mac="<your-phone-mac>".

Hinweis: Zur Verwendung dieses Skripts benötigen Sie Superuser-Berechtigungen.

verwandte Informationen