システムでアクティブなデバイスを自動的に取得しようとしています。
例えば:
私の PC には 2 つのデバイスがあります。1. TAP-Windows アダプター V9 2. Intel(R) イーサネット接続
実際にアクティブなデバイスは Intel Connection です。
したがって、アプリケーションがアクティブなデバイスを自動的に使用して pcap をダンプできるようにしたいと考えています。
私の考えは、両方のデバイスでサブネットマスクを検索することです。アクティブ デバイスには、この mask=[INET4: 255.255.255.0] のような INET4 IP があります。非アクティブなものは私にこれを与えます: mask=[0]
アクティブなデバイスが 0 のマスクを取得しないというのは正しい考えですか?
これはブロードキャストにも適用されます。
これが私の実装です:
static public PcapIf selectActiveDev(List alldevs){ PcapIf device = new PcapIf();
for(int a = 0; a<=alldevs.size()-1; a++){
if(alldevs.get(a).getAddresses().get(0).getNetmask().toString() != "0"){
device = alldevs.get(a);
}
}
return device;
}
私はEclipseでJNetPcap 1.3.0を使用しています。:)