ipconfig的输出在所有windows机器中都一样吗。我想从ipconfig的输出中捕获ip地址、默认网关、子网掩码。
目前我正在做这个:
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];
有人有更好的想法来使用一些正则表达式吗???
提前谢谢。
您可能不应该依赖命令的格式始终相同(例如,如果非英语国家的人使用您的代码,则各种值的名称将不同-这对您来说可能重要,也可能不重要)。
您可以使用java.net包检索相同的信息。此外,这个问题可能会给你一个有用的例子。
使用正则表达式模式:
Pattern pattern = Pattern.compile(
"[\n\r]\s*IP\s+Address[^\d]+(\d\S+).*Mask[^\d]+(\d\S+).*Gateway[^\d]+(\d\S+)",
Pattern.DOTALL);