- <李>
下载<强> libpcap从www.tcpdump.org 强>来源 李这里
> <李>下载<强> libpcap为win32 fromwww.winpcap.org 强>
李> <李>查看更好pcap教程 李在这里
><强>前页:强>,这是一个稍微修改和扩展的版本 我的老pcap教程。,重新审视这项工作五年之后,我是 一定比(年龄和啤酒)希望更 知识渊博的。,联系方式已经改变,请寄给你的 到来的恐吓信,casado cs.stanford.edu。
<人力资源/><强>内容强>
- <李>
介绍(你已经在这里)
李> <李>捕捉我们的第一个包
李> <李>写一个基本的数据包捕获引擎
李> <李>.....分析数据包(进展)
李> <强>这是谁:>强,本教程假设一个粗略的
知识网络;什么是包,以太网与IP vs。
TCP和UDP等。如果这些概念是外国我强烈建议
你投资一个<强> 强>好(例如,可能找不到百思买)
网络方面的书。,我最喜欢的是:
- <李>
计算机网络:自顶向下方法以互联网
(第3版)詹姆斯·f·Kurose基斯·w·罗斯
UNIX网络编程由w·理查德·史蒂文斯
李> <李>的协议(TCP/IP了,卷1)由w·理查德·史蒂文斯
李>本教程不承担任何先前的知识网络 编程,基本熟悉c。,如果你已经是一个 c/c++的主人,那么你不妨就<强>男人3 pcap >强。,你应该 有一个c编译器在您的系统上和libpcap安装工作。,所有 源在本节是在linux上,编写和测试的内核2.2.14, 虽然它应该大多便携式(呵呵)我不能保证它会 编译或在其他操作系统上运行。你要想要运行 作为根所以要小心,不要打破你的盒子。 哦,虽然我已经测试和运行本文提供的代码 教程,没有问题,我不是如果你的屎优惠和负责 必须由卫生部门隔离……即在你自己的 风险....,
hcn # gcc ldev。c -lpcap
/*, ldev.c ,, ,才能编译指令 ,才能在gcc ldev.c -lpcap ,,查询网卡,,展示与该网卡相关的网络地址和子网掩码 */# include & lt; stdio.h> # include & lt; stdlib.h> # include & lt; pcap.h>,,,,,,/*, GIMME a libpcap 请! */# include & lt; errno.h> # include & lt; sys/socket.h> # include & lt; netinet/in.h> # include & lt; arpa/inet.h> 命令行参数个数,int 主要(int char * * argv) { char 才能;* dev,/*,网卡名称,*/, char 才能;*净,/*,用点标识的网络地址,*/char 才能;*面具;/*,用点标识的子网掩码,*/int 才能;回收;,,,/*,返回标识,*/,, char 才能errbuf [PCAP_ERRBUF_SIZE];,,,,/*,错误信息,*/bpf_u_int32 才能;netp;,,,,,/*,网络地址,,,,,,,,,*/bpf_u_int32 才能;maskp;,,,,/*,子网掩码,*/,, struct 才能;in_addr  addr;/*,才能通过pcap去发现一个可用的网卡用于嗅探,*/时间=dev 才能;pcap_lookupdev (errbuf);/*,才能检测是否找到可用网卡,*/如果才能(dev ==, NULL) {才能 ,,printf (" % s \ n " errbuf); ,,退出(1); ,,}/*,才能打印网卡名称,*/,,printf (" DEV: % s \ n”, DEV);/*,才能通过pcap查询网卡的网络地址和子网掩码*/ret 才能=,pcap_lookupnet (dev,, netp,, maskp, errbuf);/*,才能检测上不操作是否成功,*/如果才能(ret ==, 1) {才能 ,,printf (" % s \ n " errbuf); ,,退出(1); ,,}/*,才能将网络地址从网络格式转化为人可读格式*/时间=addr.s_addr 才能;netp; 时间=net 才能;inet_ntoa (addr);/*,才能检测转化是否成功,*/如果才能(net ==, NULL) {才能 ,,,perror (“inet_ntoa”); ,,,退出(1); ,,}/*,才能打印网络地址*/,,printf("净:% s \ n ",净);/*,才能将子网掩码地址从网络格式转为人可读格式*/时间=addr.s_addr 才能;maskp; 时间=mask 才能;inet_ntoa (addr); ,, 如果才能(mask ==, NULL) {才能 ,,,perror (“inet_ntoa”); ,,,退出(1); ,,} ,,/*,才能打印子网掩码*/,,printf("面具:% s \ n”,面具); return 才能;0; null null null null null null null null nullLibpcap tutorial-01