java:ipconfig的正则表达式

时间:2012-07-22 10:32:43

标签: java regex ipconfig

所有windows机器中ipconfig的输出是否相同?。我想从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];

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

提前致谢。

2 个答案:

答案 0 :(得分:2)

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

您可以使用java.net包检索相同的信息。此外,this question可能会为您提供一个有用的示例。

答案 1 :(得分:1)

使用正则表达式:

Pattern pattern = Pattern.compile(
  "[\\n\\r]\\s*IP\\s+Address[^\\d]+(\\d\\S+).*Mask[^\\d]+(\\d\\S+).*Gateway[^\\d]+(\\d\\S+)",
  Pattern.DOTALL);