需要写一个工具监控我所负责项目中的服务器与客户端的交易事件,而我又不方便修改系统代码(因为此工具只是我自己为了工作方便而作),因此需要通过监听并分析网络数据包来获取信息。
原本打算将tcpdump的C源码翻译成java代码,因为只是要分析TCP/IP协议数据包,并不需要将整个tcpdump的功能用java实现,所以一开始认为不需要太长时间。但真的做的时候发现里面有不少的数据结构,有不少指针和sizeof等C语言特有的东东,真的搞起来还是要花不少心思的。搞出来后其他人维护也麻烦,因为过几个月就要跳槽了。
到网上找了下发现有个好东东。加利福尼亚大学信息与计算机科学学院的Keita Fujii()写了两个基于libpcap/winpcap的java的网络数据包分析程序(jpcap和jpcapdumper分别在和。实际也就是一个,jpcap是工具包,jpcapdumper是为jpcap提供了gui。
WinPcap是windows环境下用于访问网络链路层的符合工业标准的工具:它支持应用抓取和转发通过协议栈的数据包,还有另外一些有用的特性,包括内核级别的包过滤、一个网络统计引擎以及对远程报抓取的支持。
WinPcap包括一个驱动和一个库。驱动对操作系统进行了扩展以便提供对底层网络的访问支持。库提供对底层网络层的方便访问。库中还包含了有名的libpcap的windows版本。 多亏了WinPcap提供的这组特性,为很多开源的和商业的网络工具提供了包抓取和过滤引擎。这些网络工具包括协议分析器、网络监视器、网络入侵检测系统、嗅探器、网络流量生成器和网络测试工具等等。其中的一些工具,比如Wireshark、Nmap、Snort、ntop,都是在网络社区闻名和通用的。 Winpcap.org也是WinDump的主页,这是一个很受欢迎的Windows版tcpdump工具。WinDump可根据复杂的规则进行察看、诊断和保存网络流量到磁盘中等工作。原文:WinPcap is the industry-standard tool for link-layer network access in Windows environments: it allows applications to capture and transmit network packets bypassing the protocol stack, and has additional useful features, including kernel-level packet filtering, a network statistics engine and support for remote packet capture.
WinPcap consists of a driver, that extends the operating system to provide low-level network access, and a library that is used to easily access the low-level network layers. This library also contains the Windows version of the well known libpcap Unix API.
Thanks to its set of features, WinPcap is the packet capture and filtering engine of many open source and commercial network tools, including protocol analyzers, network monitors, network intrusion detection systems, sniffers, traffic generators and network testers. Some of these tools, like Wireshark, Nmap, Snort, ntop are known and used throughout the networking community.
Winpcap.org is also the home of WinDump, the Windows version of the popular tcpdump tool. WinDump can be used to watch, diagnose and save to disk network traffic according to various complex rules.