我试图在Java中获取我的无线网络设备的SSID。我尝试了官方的网络教程http://java.sun.com/docs/books/tutorial/networking/nifs/retrieving.html,但是getDisplayName()和getName()都没有返回SSID。有没有获取精确SSID的方法?此外,我还尝试读取所有网络设备的WiFi信号强度,但找不到方法。请问在哪里可以获取所有这些信息(教程、代码示例等)?
谢谢
谢谢
这不能使用纯Java完成。Java API可以将您带到网络堆栈中的NetworkInterface级别,但不能更低。当连接到WiFi网络时,所有SSID、握手和安全性都在比那更低的级别上完成,即您的平台相关驱动程序。Java API(截至Java7)不允许您更接近此信息;您将需要使用一些平台相关代码来完成。
这是一个代码示例,可以从 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
}
}
你看到这个了吗 jWlanScan