繁体   English   中英

使用netsh从Java访问Wi-Fi网络接口详细信息

[英]Accessing Wi-Fi network interface details from Java using netsh

我正在Windows平台上开发Java程序。 我想访问Wi-Fi接口详细信息,例如SSID,ip,子网,是否启用,是否连接等。 目前,我正在尝试使用netsh,ipconfig命令。 例如,这是我如何获取连接的SSID。 这样好吗? 有更好的简便方法吗? 提前致谢。

这段代码可以在所有Windows版本中正常工作吗?

String 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")){
        ssid = line.split("\\s+")[3];
        System.out.println(ssid);
        return ssid;
    }
}

从Windows操作系统到Windows操作系统,NetSh.exe应用程序/命令中存在差异。

NetSh上的Microsoft命令行参考指出:“ WindowsServer®2003,WindowsServer®2008和WindowsServer®2008 R2上的netsh命令之间存在功能差异:”

这意味着XP,Vista和Windows 7之间存在差异。但是,仅因为存在更改并不意味着您就无法尝试测试要在App中使用的一些命令。 我之所以这样说,是因为NetSh.exe具有非常丰富的功能,并且具有跨许多网络技术的许多子命令。

为了测试不同操作系统之间的差异,您可以使用脚本列出多个操作系统上的NetSh.exe帮助菜单,或在Microsoft网站上比较示例命令(在下面的链接中)。

RobVanderwoude有一个脚本,其中显示了NetSh的所有子命令。 如果您进一步执行该脚本,则可以列出所有子命令示例并比较操作系统之间的结果。

尽管如此,您仍然必须在每个OS上手动测试该命令,或者向您信任的人确认某个命令在OS上有效。

NetSh.exe CLI参考: https ://technet.microsoft.com/zh-cn/library/ee404790.aspx

NetSh帮助脚本: http ://www.robvanderwoude.com/netsh.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM