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 に答える