Como poderia cheirar o tráfego de rede em Java?

Estava à procura de um programa que cheirasse o meu tráfego em Java, mas não encontrei nada. Queria saber se havia alguma forma de ver o tráfego de rede a passar. Ouvi falar de uma ideia com uma tomada, mas não percebo como isso funcionaria. Seja como for, Estou à procura de uma API ou de uma forma de a escrever.

editar: Eu gostaria de ter uma API, mas também gostaria de um esclarecimento sobre o caminho para farejar trânsito com uma tomada.

Author: Java Is Cool, 2014-10-02

4 answers

Jpcap, jNetPcap -- esses são projetos de envoltórios pcap em Java.

Kraken -- projecto semelhante, bem documentado com muitos exemplos.

Um exemplo simples do site do 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);
    }
}
 9
Author: Byungjoon Lee, 2014-10-02 00:59:03

Outra embalagem Java libpcap é https://github.com/kaitoy/pcap4j

Pcap4J é uma biblioteca Java para capturar, elaborar e enviar pacotes. O Pcap4J envolve uma biblioteca nativa de captura de pacotes (libpcap ou WinPcap) através da JNA e fornece-lhe APIs orientados para Java.

 4
Author: kervin, 2015-12-05 20:20:57

Precisas de uma api de sniffer pacotes, talvez netutils é o que precisas:

O pacote 'netutils' dá uma biblioteca de rede java de baixo nível. Ele contém uma extensa infra-estrutura para cheirar, injectar, construir e a analisar os pacotes Ethernet/IP/TCP/UDP / ICMP.

 1
Author: Juned Ahsan, 2014-10-02 00:55:21

Não dizer qualquer coisa relacionada com API ou java, mas se você realmente quiser apenas cheirar dados para fins de análise, então dê tentativa: WireShark. É uma aplicação utilizada para análise em rede.

É útil se alguém não estiver ciente.
 -1
Author: murtaza.webdev, 2016-08-11 08:35:49