我只是四处看看,想找出如何制作一个程序,用Java嗅探我的网络流量,但我什么也找不到。我想知道是否有任何方法可以查看正在经过的网络流量。我听说过一个关于插座的想法,但我不明白它是如何工作的。所以无论如何,我只是在寻找一个API或者一种自己编写它的方法。
编辑:--我很乐意使用,但我也希望澄清使用套接字嗅探流量的方法。
发布于 2014-10-02 00:59:03
jpcap,jNetPcap --这些都是Java中的pcap项目。
海怪 --类似的项目,有大量的例子记录在案。
来自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);
}
}
发布于 2015-12-05 20:20:57
另一个Java包装器是https://github.com/kaitoy/pcap4j。
Pcap4J是一个用于捕获、制作和发送数据包的Java库。Pcap4J通过JNA封装本地数据包捕获库(libpcap ),并为您提供面向Java的API。
发布于 2014-10-02 00:55:21
您需要一个数据包嗅探器api,也许网状结构就是您所需要的:
'netutils‘包提供了一个低级的java网络库。它包含用于嗅探、注入、构建和解析以太网/IP/TCP/UDP/ICMP数据包的广泛基础设施。
https://stackoverflow.com/questions/26152931
复制相似问题