Suche nach SSID des wireless-Netzwerks mit Java
Wir sind dabei ein Projekt codiert in Java (kompiliert für JRE 1.6) und brauchen etwas Hilfe mit
ein wenig, aber scheinbar komplizierte feature:
Wollen wir eine bestimmte Handlung zu tun, wenn ein bestimmtes WLAN-Netzwerk verbunden ist, beispielsweise dann, wenn die verbundene SSID=="myNetworkAtHome" oder ähnlich.
Nach einem Blick über diese Website, google und die Java-Dokumentation, die wir haben, ein Stück näher kommen.
Nach einem Blick auf den code hier:
http://download.oracle.com/javase/tutorial/networking/nifs/retrieving.html
Scheint es, wir waren immer in der Nähe, aber es trifft ein deadend, alle Schnittstellen zu sein scheint mit "net0" durch "net13" (auf meinem laptop ist.)
Und wir sind nicht in der Lage zu Holen Sie sich die SSID aus jeder Schnittstelle. Ich erkennen den code im Beispiel ist nur den interface-Namen und ist nicht mit Netzwerken, aber es scheint nicht zu bieten, eine Möglichkeit des Holens der angeschlossenen Netzwerk-Informationen.
Jede Hilfe zu diesem wäre sehr hilfreich!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht auf diese low-level details des Netzwerks in Java. Sie können einige details der Netzwerk-interface mit der
NetworkInterface
Klasse, aber wenn Sie sehen, die Methoden, niemand ist im Zusammenhang mit WLAN-Netzwerken noch irgendeinen Weg, um die SSID ist vorhanden. Wie bereits unten, sollten Sie einige native Funktionalität durch den Aufruf einer nativen Bibliothek mit JNI oder durch den Aufruf der OS-tool mitRuntime
.Java ist nicht dafür gedacht, die Art von Dingen, ist schwer zu implementieren in einer Plattform-unabhängigen Weise, und alle hardware-level-Details können nicht verwaltet werden in Java durch das Prinzip.
Gleiche gilt auch für andere Netzwerke wie 3G, GPRS... die Anwendung sollte nicht bewusst sein, die Art der Verbindung noch die details. Java kann nur verwalten, die Dinge auf den Transport - (TCP) Ebene, nicht auf der Netzwerk - (IP) keine Verbindung (3G, Wifi, Ethernet...), so können Sie nur verwalten sockets.
Haben Sie zu greifen, um eine JNI-Lösung. Es gibt etwas zur Verfügung zu http://sourceforge.net/projects/jwlanscan, aber das funktioniert nur für Windows-Systeme. Oder Sie könnte es tun die hässlichen Weg und nutzen Laufzeit.getRuntime().exec(...) und verwenden Sie die Befehlszeilen-tools für Ihr Betriebssystem (*nix = iwconfig) und resort zu analysieren.
iwconfig
. Linux =iwconfig
. OS X =/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport
. *BSD =ifconfig
. Und cross-Plattform würde erfordern unterschiedliche Implementierungen der Java-Klassen auf verschiedenen Plattformen.