Как я могу прослушивать сетевой трафик в Java?

Я просто искал вокруг, чтобы найти программу, которая могла бы прослушивать мой сетевой трафик на Java, но я ничего не мог найти. Я хотел знать, есть ли способ просмотреть проходящий сетевой трафик. Я слышал об идее с сокетом, но я не понимаю, как это будет работать. Так или иначе, просто ищу API или способ написать это сам.

РЕДАКТИРОВАТЬ: Я бы с удовольствием хотел API, но я также хотел бы получить разъяснения о том, как перехватить трафик с помощью сокета.

4 ответа

Решение

jpcap, jNetPcap - это проекты-обертки pcap на Java.

Kraken - похожий проект, хорошо документированный с множеством примеров.

Простой пример с сайта Kraken:

public static void main(String[] args) throws Exception {
    File f = new File("sample.pcap");

    EthernetDecoder eth = new EthernetDecoder();
    IpDecoder ip = new IpDecoder();
    TcpDecoder tcp = new TcpDecoder(new TcpPortProtocolMapper());
    UdpDecoder udp = new UdpDecoder(new UdpPortProtocolMapper());

    eth.register(EthernetType.IPV4, ip);
    ip.register(InternetProtocol.TCP, tcp);
    ip.register(InternetProtocol.UDP, udp);

    PcapInputStream is = new PcapFileInputStream(f);
    while (true) {
        // getPacket() will throws EOFException and you should call is.close() 
        PcapPacket packet = is.getPacket();
        eth.decode(packet);
    }
}

Другая оболочка Java libpcap - https://github.com/kaitoy/pcap4j

Pcap4J - это библиотека Java для захвата, создания и отправки пакетов. Pcap4J оборачивает собственную библиотеку захвата пакетов (libpcap или WinPcap) через JNA и предоставляет вам Java-ориентированные API.

Не рассказывать ни об API, ни о Java, но если вы действительно хотите анализировать данные только для целей анализа, попробуйте: WireShark, Это приложение, используемое для анализа сети.

Это полезно, если кто-то не знает.

Вам нужен пакетный сниффер api, возможно, вам нужен netutils:

Пакет netutils предоставляет сетевую библиотеку Java низкого уровня. Он содержит обширную инфраструктуру для прослушивания, внедрения, построения и анализа пакетов Ethernet/IP/TCP/UDP/ICMP.

Другие вопросы по тегам