Java PcapNetworkInterface在给定IP上返回null

Java PcapNetworkInterface在给定IP上返回null,java,packet-capture,network-interface,pcap4j,Java,Packet Capture,Network Interface,Pcap4j,我正在尝试捕获包。在我的探索示例中,我使用我在浏览器中访问的网站的IP。我正在使用PCAP4J捕获包信息 基于上的第3步,我的印象是,我可以简单地拥有一个互联网地址并开始收听它: InetAddress addr = InetAddress.getByName("192.168.10.100"); PcapNetworkInterface nif = Pcaps.getDevByAddress(addr); 但是,当我将此ip更改为我的个人示例185.57.10.32时,nif返回null 我

我正在尝试捕获包。在我的探索示例中,我使用我在浏览器中访问的网站的IP。我正在使用PCAP4J捕获包信息

基于上的第3步,我的印象是,我可以简单地拥有一个互联网地址并开始收听它:

InetAddress addr = InetAddress.getByName("192.168.10.100");
PcapNetworkInterface nif = Pcaps.getDevByAddress(addr);
但是,当我将此ip更改为我的个人示例185.57.10.32时,nif返回null

我已打印出PCA网络接口列表,如下所示:

System.out.println("#### LIST OF DEVS ####");

List<PcapNetworkInterface> devices = Pcaps.findAllDevs();

for (PcapNetworkInterface device : devices) {
    System.out.println(device.getName());
}
System.out.println("###############");
返回以下内容:

wlp2s0 任何 瞧 docker0 enp3s0f1 br-df16c72d2764 蓝牙 nflog NF队列 美国海军陆战队1号 美国海军2号

从这个意义上说,我理解nif返回null,因为它不在列表中。然而,这让我不明白为什么作者给出的例子没有像我预期的那样有效

所以我认为第一个问题是:人们可以通过Pcap4J收听特定的ip吗?在这种情况下,一个网站的ip。或者网站是不可能的,我应该做另一个测试用例吗


谢谢大家!

应该传递给Pcaps的IP地址。getDevByAddress是NIF拥有的地址之一。
您可以使用NIF从任何IP地址捕获数据包。

当我使用设备列表中任何设备的地址时,NIF不为空。因此,我觉得我不能简单地听任何IP。例如,如果我使用8.8.8.8作为IP,nif为null,这是预期的吗?是的,这是预期的,因为您没有包含8.8.8.8的nif。传递给Pcaps.getDevByAddress的IP地址在捕获数据包时不会以任何方式使用。好的,明白了,明白了。事实上,如果我也使用tcpdump使用的接口的ip,我确实会得到包。谢谢你的澄清!我会接受答案的!