Ich entwickle eine Anwendung zur Steuerung von Mehrzonen-Audioverstärkern. Um dies zu tun, muss ich eine Socket-Verbindung zu erstellen, so weit, dass gut funktioniert. Was ich tun möchte, ist statt der Benutzer mit manuell in die IP-Adresse eingeben möchte ich meine App automatisch das Netzwerk zu scannen, überprüfen Sie alle MAC-Adresse Match es auf die NIC-Datenbank, wenn es die Corp meines Verstärkers übereinstimmt, dann speichern Sie die IP-Adresse. Ist das möglich, wenn ja, wie? Oder gibt es einen einfacheren Weg, es zu tun?
Antwort
Zu viele Anzeigen?Ich machte es für meine App "Network Discovery" wie folgt: Schleife durch den IP-Bereich und dann einfach die IP anpingen, um die Mac-Adresse zu erhalten, die ich durch Parsen von /proc/net/arp erhalte. Es gibt wahrscheinlich einen besseren Weg, aber es funktioniert für mich.
Hier ist der Bereich Scannen: https://github.com/rorist/Android-network-discovery/blob/master/src/info/lamatricexiste/network/DnsDiscovery.java start und end sind ip adr as long.
Und hier ist die Analyse von /proc/net/arp: https://github.com/rorist/Android-network-discovery/blob/master/src/info/lamatricexiste/network/Network/HardwareAddress.java#L60