我正在尝试用 Java 获取我的无线网络设备的 SSID。我尝试了官方网络教程http://java.sun.com/docs/books/tutorial/networking/nifs/retrieving.html但 getDisplayName() getName() 不返回 SSID。有没有办法获得准确的 SSID?此外,我还试图读取我所有网络设备的 wifi 信号强度,但找不到方法。谁能指导我从哪里获得所有这些信息(教程、代码示例等)?
谢谢
我正在尝试用 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 开始)不会让您更接近这些信息。您将不得不为此使用一些平台相关的代码。
你看到这个jWlanScan了吗
这是从 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
}
}