wincap网络数据包的捕获
2014-07-10 08:34
246 查看
使用wincap之前,你必须安装wincap安装包(内带头文件和链接库)
以下直接贴代码:
以下直接贴代码:
///////////////////////////////////////////////////////////////////////////// /*2014年7月10日08:23:06 bojie http://blog.csdn.net/bojie5744 */ ///////////////////////////////////////////////////////////////////////////// struct pcap_pkthdr { struct timeval ts; bpf_u_int32 caplen; bpf_u_int32 len; }; #include "pcap.h" #pragma comment(lib,"packet.lib") #pragma comment(lib,"wpcap.lib") void packet_handler( u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data); int main() { pcap_if_t *alldevs; pcap_if_t *d; int inum; int i=0; pcap_t *adhandle; char errbuf[256]; if ( pcap_findalldevs( &alldevs, errbuf ) == -1 ) { fprintf_s( stderr, "pcap_findalldevs函数调用错误: %s/n", errbuf ); exit(1); } for( d = alldevs; d; d = d->next ) { printf_s( "%d. %s", ++i, d->name ); if ( d->description ) printf_s( " (%s)/n", d->description ); } if(i == 0) { printf_s( "搜索错误/n" ); return -1; } printf_s( "选择网卡 (1-%d):", i ); scanf_s( "%d", &inum ); if( inum < 1 || inum > i ) { printf_s( "输入有误,没有此网卡/n" ); pcap_freealldevs( alldevs ); return -1; } for( d = alldevs, i = 0; i < inum-1; d = d->next, i++ ); if ( (adhandle= pcap_open_live( d->name, 65536, 1, 1000, errbuf ) ) == NULL) { fprintf_s( stderr, "错误: %s /n", errbuf ); pcap_freealldevs( alldevs ); return -1; } printf_s( "开始监听网卡%s/n", d->description ); pcap_freealldevs( alldevs ); pcap_loop( adhandle, 0, packet_handler, NULL ); return 0; }
void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data) { struct tm ltime; char timestr[20]; time_t t = (time_t )&header->ts.tv_sec; localtime_s( <ime, &t ); strftime( timestr, sizeof timestr, "%H:%M:%S", <ime); printf_s("%s,/t%.6d毫秒/t长度:%d/n", timestr, header->ts.tv_usec, header->len ); }
相关文章推荐
- 【笔记】wincap网络数据包的捕获——使用函数回调
- 【笔记】wincap网络数据包的捕获——不使用回调的方式
- 网络数据包捕获函数库Libpcap安装与使用
- (计算机网络)用Wireshark捕获并分析数据包
- ESXi主机与网络中其他主机的网咯数据包捕获
- Linux 下libpcap和Windows下winpcap 捕获网络数据包的异同
- linux 下libpcap和windows下winpcap 捕获网络数据包的异同
- SmartSniff 简体中文版 – 小巧的网络数据包捕获工具
- 网络数据包捕获与发送的多重实现
- LINUX下的远端主机登入 校园网络注册 网络数据包转发和捕获
- 捕获网络数据包
- 网络数据包捕获函数库Libpcap安装与使用(非常强大)
- 通过JPcap捕获网络TCP数据包,并将解析的信息写入execl文件中
- 基于零拷贝的网络数据包捕获技术简述
- [转]网络数据包捕获函数库Libpcap安装与使用(非常强大)
- TruthTracerUtilities-SysWatcher进程/模块管理/网络流量/数据包捕获、分析工具集V0.11
- (网络安全架构师必修课)生产环境下的 wireshark 数据包捕获,过滤,分析技巧与实战
- 网络安全架构师必修课)生产环境下的 wireshark 数据包捕获,过滤,分析技巧与实战
- 网络数据包捕获与发送的多重实现(转载)
- 网络数据包捕获与发送的多重实现 (学习)