IP-Adresse von einem UPnP-Gerät
Ich versuche, herauszufinden, die IP-Adresse von einem UPnP-Gerät angeschlossen an mein Netzwerk. Auf Windows bin ich in der Lage, diese Informationen zu erhalten, durch Bezugnahme auf die folgende Frage auf StackOverflow:
UPnP Multicast: fehlende Antworten von M-SUCHE (Discovery)
Jedoch, wie kann ich auf Linux?
- Wie wollen Sie die Lösung implementieren (shell-script, C++, Java)?
- Was wissen Sie über dieses Gerät? Kannst du auf den router zugreifen? Die IP-Adresse dynamisch aufgebaut ( mit DHCP) oder fest? Erwarten Sie auf dem gleichen Subnetz mit Ihrer Linux-box?
- Es tut mir Leid, ich will, um es zu implementieren shell-Skript. Das Gerät bekommt seine ip von einem DHCP.
- Vorausgesetzt, Sie haben viele Geräte in Ihrem Subnetz, wie erkennen Sie "die richtige"? Hat Sie reagiert auf bestimmte Befehle? Senden von Datenpaketen? ....
- In der Antwort der m-search-Anfrage von dem genannten link bekomme ich einen ST-tag mit einem bestimmten "ST:urn:schemas -..." - format.
- Dein link ist ein C# - Programm mit socket-Kommunikation. Ich glaube nicht, können Sie vernünftigerweise erwarten können, das gleiche zu tun, wie es tut, von einem shell-Skript. Sie müssen den port, das Programm auf linux (vielleicht können Sie Mono, um es auszuführen, ohne änderungen; ich bin mir nicht sicher).
- hat ein Punkt - aber siehe dieses tutorial für einen Weg zu tun, basic-socket-Programmierung mit der shell. Nicht für das schwache des Herzens, aber getan werden könnte. Hinweis: das Beispiel zeigt sowohl server-und client - sollten Sie müssen nur den "client" - Teil der Kommunikation werden, vorausgesetzt, die uPnP-Gerät ist der "server". Da ich nicht alles haben, wie Ihr setup, wäre es sehr schwer, zu zeigen, wie Sie dies tun. Allerdings, wenn Sie Folgen Sie der Anleitung und erhalten "fast da", veröffentlichen Sie Ihre Ergebnisse und wir werden versuchen, das zu Debuggen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Je nachdem, wie Sie bei der Identifizierung der richtigen Geräte, die Sie könnte nehmen Sie einen Blick auf gssdp-entdecken Sie in gupnp-tools-Paket (welches Bestandteil der GUPnP Projekt). Wenn das ist nicht, was Sie wollen, aber Sie bereit sind, um den code ein wenig, nehmen Sie einen Blick auf die Quelle: gssdp-entdecken ist nur ~100 Zeilen C-so sollten Sie sein in der Lage, das zu tun, was Sie wollen in ein paar Dutzend Zeilen python...
Beispiel: