Я пытаюсь захватить пакеты. В моем «исследовательском» примере я использую IP-адрес веб-сайта, который я посещаю в браузере. Я использую PCAP4J для сбора информации о пакете.
Основываясь на шаге 3 https://www.pcap4j.org/, у меня сложилось впечатление, что я могу просто получить интернет-адрес и начать его слушать:
InetAddress addr = InetAddress.getByName("192.168.10.100");
PcapNetworkInterface nif = Pcaps.getDevByAddress(addr);
Однако, когда я меняю этот ip на свой личный пример (185.57.10.32), ниф возвращает ноль.
Я распечатал следующий список PcapNetworkInterfaces:
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 bluetooth0 nflog nfqueue usbmon1 usbmon2
В этом смысле я понимаю, что ниф возвращает null, поскольку его нет в списке. Однако это заставляет меня не понимать, почему пример, приведенный автором, не работает, как я ожидал.
Поэтому я думаю, что первым вопросом будет: можно ли прослушивать определенный ip через Pcap4J? В этом случае IP-адрес веб-сайта. Или веб-сайты невозможны, и я должен сделать еще один тестовый пример?
Спасибо!




IP-адрес, который вы должны передать Pcaps.getDevByAddress(), есть у NIF.
Вы можете захватывать пакеты с любых IP-адресов с помощью NIF.
Да, это ожидаемо, потому что у вас нет NIF с 8.8.8.8. IP-адрес, переданный Pcaps.getDevByAddress(), ни в коем случае не будет использоваться при захвате пакетов.
Хорошо, ясно, я понял. Действительно, если я использую IP-адрес интерфейса, который также использует tcpdump, я получаю пакеты. Спасибо за разъяснение! Я приму ответ!
Когда я использую адрес любого устройства из списка устройств, nif не равен нулю. Таким образом, у меня сложилось впечатление, что я просто не могу слушать какой-либо IP. Например, если я использую 8.8.8.8 в качестве IP-адреса, значение nif равно нулю, как и ожидалось?