在Java中获取无线网络的SSID和其他信息

3
我试图在Java中获取我的无线网络设备的SSID。我尝试了官方的网络教程http://java.sun.com/docs/books/tutorial/networking/nifs/retrieving.html,但是getDisplayName()和getName()都没有返回SSID。有没有获取精确SSID的方法?此外,我还尝试读取所有网络设备的WiFi信号强度,但找不到方法。请问在哪里可以获取所有这些信息(教程、代码示例等)?
谢谢
3个回答

1

这不能使用纯Java完成。Java API可以将您带到网络堆栈中的NetworkInterface级别,但不能更低。当连接到WiFi网络时,所有SSID、握手和安全性都在比那更低的级别上完成,即您的平台相关驱动程序。Java API(截至Java7)不允许您更接近此信息;您将需要使用一些平台相关代码来完成。


0

这是一个代码示例,可以从 cmd 返回当前连接的无线 SSID。

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

2
是的!但它似乎与平台有关。它还使用了dll扩展名。我正在寻找完全基于Java的东西(没有任何Windows特定的dll)。 - newbie
64位用户在尝试使用该库时可能会收到以下错误提示:“无法在AMD 64位平台上加载IA 32位.dll”。 - Axoren

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接