間違ったリージョンからデータがキャプチャされています。eth0 ではなく eth1 から IP アドレス フィールドとサブネットをキャプチャしています。なぜこれが起こっているのかわかりません。私も試しmatcher.find(0)
ましたが、同じ結果が得られました。
String[] dataNames = new String[]{"eth0Ip", "eth0Subnet"}
dataExtractionPattern = Pattern.compile("eth0 .*inet (?<eth0Ip>\\S+) mask (?<eth0Subnet>\\S+)",Pattern.DOTALL);
Matcher matcher = dataExtractionPattern.matcher(receivedDataString);
if (matcher.find()) {
for (String key : dataNames) {
String dataValue;
dataValue = matcher.group(key);
extractedData.put(key, dataValue);
}
hasData = true;
}
入力文字列は次のとおりです。
lo0 リンク タイプ: ローカル ループバック キュー: なし inet 127.0.0.1 マスク 255.255.255.255 アップランニングループバック MTU:1500 メトリック:1 VR:0 RX パケット:4 mcast:0 エラー:0 ドロップ:1 TX パケット:4 mcast:0 エラー:0 衝突:0 サポートされていないプロト:0 RX バイト:172 TX バイト:172 eth0 リンク タイプ: イーサネット HWaddr 00:25:f2:5e:9c:34 キュー: なし inet 10.1.2.2 マスク 10.1.2.1 ブロードキャスト 255.255.255.254 放送中 MTU:1000 メトリック:1 VR:0 RX パケット:0 mcast:0 エラー:0 ドロップ:0 TX パケット:0 mcast:0 エラー:0 衝突:0 サポートされていないプロト:0 RX バイト:0 TX バイト:0 eth1 リンク タイプ:イーサネット HWaddr 00:25:f2:5e:9c:33 キュー:なし inet 192.168.200.51 マスク 255.255.255.0 ブロードキャスト 192.168.200.255 アップランニングブロードキャスト MTU:1500 メトリック:1 VR:0 RX パケット:0 mcast:0 エラー:0 ドロップ:0 TX パケット:0 mcast:0 エラー:0 衝突:0 サポートされていないプロト:0 RX バイト:0 TX バイト:0
eth0 ip の場合、192.168.200.51 とマスク 255.255.255.0 が誤ってキャプチャされます。