0

ipconfig 的输出在所有 Windows 机器中都相同吗?. 我想从 ipconfig 的输出中捕获 ip-address 、默认网关、子网掩码。

目前我正在这样做:

String[] arr = s.split("IPv4 Address. . . . . . . . . . . : ");
            ipAddress = (arr[1].split("\\n"))[0];
            String[] arr1 = s.split("Subnet Mask . . . . . . . . . . . : ");
            subnetMask = (arr1[1].split("\\n"))[0];
            String[] arr2 = s.split("Default Gateway . . . . . . . . . : ");
            defaultGateway = (arr2[1].split("\\n"))[0];

任何人都有更好的想法来使用一些正则表达式???

提前致谢。

4

2 回答 2

2

您可能不应该依赖始终相同的命令格式(例如,如果非英语国家的某人使用您的代码,则各种值的名称将不同 - 这可能很重要,也可能不重要给你)。

您可以使用java.net包检索相同的信息。此外,这个问题可能会给你一个有用的例子。

于 2012-07-22T10:39:16.143 回答
1

使用正则表达式模式:

Pattern pattern = Pattern.compile(
  "[\\n\\r]\\s*IP\\s+Address[^\\d]+(\\d\\S+).*Mask[^\\d]+(\\d\\S+).*Gateway[^\\d]+(\\d\\S+)",
  Pattern.DOTALL);
于 2012-07-22T15:05:09.167 回答