首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Java中嗅探网络流量?

如何在Java中嗅探网络流量?
EN

Stack Overflow用户
提问于 2014-10-02 00:52:33
回答 4查看 45K关注 0票数 11

我只是四处看看,想找出如何制作一个程序,用Java嗅探我的网络流量,但我什么也找不到。我想知道是否有任何方法可以查看正在经过的网络流量。我听说过一个关于插座的想法,但我不明白它是如何工作的。所以无论如何,我只是在寻找一个API或者一种自己编写它的方法。

编辑:--我很乐意使用,但我也希望澄清使用套接字嗅探流量的方法。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-10-02 00:59:03

jpcapjNetPcap --这些都是Java中的pcap项目。

海怪 --类似的项目,有大量的例子记录在案。

来自Kraken网站的简单示例:

代码语言:javascript
运行
复制
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);
    }
}
票数 8
EN

Stack Overflow用户

发布于 2015-12-05 20:20:57

另一个Java包装器是https://github.com/kaitoy/pcap4j

Pcap4J是一个用于捕获、制作和发送数据包的Java库。Pcap4J通过JNA封装本地数据包捕获库(libpcap ),并为您提供面向Java的API。

票数 4
EN

Stack Overflow用户

发布于 2014-10-02 00:55:21

您需要一个数据包嗅探器api,也许网状结构就是您所需要的:

'netutils‘包提供了一个低级的java网络库。它包含用于嗅探、注入、构建和解析以太网/IP/TCP/UDP/ICMP数据包的广泛基础设施。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26152931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档