2009-11-20 96 views
2

我正在嘗試使用Java獲取無線網絡設備的SSID。我嘗試了官方網絡教程http://java.sun.com/docs/books/tutorial/networking/nifs/retrieving.html,但getDisplayName()getName()不返回SSID。有沒有辦法得到一個確切的SSID?另外,我還試圖讀取我所有網絡設備的無線信號強度,並找不到一種方法。任何人都可以請指示我從哪裏獲得所有這些信息(教程,代碼示例等)?使用Java獲取無線網絡的SSID和其他信息

感謝

回答

0

你看到這個jWlanScan

+2

是回來了!但它似乎取決於平臺。它也使用dll擴展。我正在尋找完全是java的東西(沒有任何Windows特定dll) – newbie 2009-11-20 19:14:06

+0

64位用戶可能會遇到以下錯誤:嘗試訪問「無法在AMD 64位平臺上加載IA 32位.dll」使用庫。 – Axoren 2014-08-02 00:15:49

1

這不能用純Java來完成。 Java API可以使您在網絡堆棧中的層次低至NetworkInterface,但不會更低。當連接到WiFi網絡時,所有SSID,握手和安全措施都會在比這更低的級別完成 - 即您的平臺相關驅動程序。 Java API(自Java7起)不會讓你更接近這些信息;你將不得不使用一些與平臺相關的代碼。

-1

這是代碼示例,其中當前連接的無線SSID從CMD

ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", "netsh wlan show interfaces");  
builder.redirectErrorStream(true); 
Process p = builder.start(); 

BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream())); 
String line; 
while (true) { 
    line = r.readLine(); 
    if (line.contains("SSID")){ 
     // do something 
    } 
} 
+0

該行無法讀取,返回nullpointerexception – 2015-06-04 11:40:31

+0

此代碼返回'NullPointerException'。 – 2017-12-08 19:46:18