博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

07 2011 档案

摘要:这里用到的数据结构是pcap_dumper_t,这也是一个相当于文件描述符的东西,我们在用的时候先指定pcap_dumper_t *dumpfp; 使用两个函数来存储网络数据,一个是pcap_dump_open(),另一个是pcap_dump()。先用前一个函数打开一个文件,然后用后一个函数把网络数据写到这个文件中。最后用pcap_dump_close()这个函数把这个文件关闭。 函数原型如下:... 阅读全文

posted @ 2011-07-25 15:55 天地玄黄 阅读(8681) 评论(0) 推荐(0)

摘要:设置过滤器要用到两个函数,一个是pcap_compile(),另一个是pcao_setfilter()。他们的函数原型如下所示: int pcap_compile (pcap_t *p, struct bpf_program *fp, char *str, int optimize, bpf_u_int32 netmask) 1、p是一个打开的网络设备的描述符。 2、fp是一个指针,用来存储一个... 阅读全文

posted @ 2011-07-23 16:27 天地玄黄 阅读(7108) 评论(0) 推荐(0)

摘要:这里需要特别强调的一个数据结构是pcap_t,它相当于一个文件描述符,代表一个已经打开的设备。我们对这个设备进行操作,就是对这个文件描述符进行操作。 首先是打开一个已知的设备,使用pcap_open()这个函数,其原型如下: pcap_t * pcap_open (const char *source, int snaplen, int flags, int read_timeout, stru... 阅读全文

posted @ 2011-07-23 10:54 天地玄黄 阅读(3091) 评论(0) 推荐(0)

摘要:假设我们定义一个数组char a[16]; 那么a与&a分别代表什么呢?它们完全一样吗? a其实代表的是数组中首元素的地址,即a[0]的地址,&a代表的是整个数组的起始地址。我们做个测试就可以很容易知道。 我们分别测试a a+1 &a &a+1这四个值,它们分别为: a 0x0012fcc8 a+1 0x0012fcc9 &a 0x0012fcc8 &a+1 0x0012fcd8 a和&a的值虽... 阅读全文

posted @ 2011-07-23 10:19 天地玄黄 阅读(1118) 评论(1) 推荐(2)

摘要:对于一维数组,我们可以把它考虑成一长溜格子,每个格子就是一个元素,每个元素是一个数值。 对于多维数组,我们也可以把它看做一长溜的格子,每个格子就是一个元素,只不过每个元素又是一个数组。这样依次深入。 阅读全文

posted @ 2011-07-23 09:51 天地玄黄 阅读(228) 评论(0) 推荐(0)

摘要:pcap_if_t是一个interface数据结构,表明网络接口的信息。网络接口就是interface,就是我们用来上网的设备,一般为网卡,还有一些虚拟网卡也算作这样的接口。它的结构如下: struct pcap_if { struct pcap_if *next; char *name; char *description; struct pcap_addr *addresses; u_int... 阅读全文

posted @ 2011-07-22 17:12 天地玄黄 阅读(7763) 评论(3) 推荐(0)

摘要:一直以为typedef必须在相应的数据类型之后才可定义,原来在前面也可以: #include <stdio.h>#include <stdlib.h>/* the typedef is before the struct */typedef struct pcap_if* pcap_if_p;struct pcap_if { struct pcap_if *next; int a;};int m... 阅读全文

posted @ 2011-07-22 14:45 天地玄黄 阅读(762) 评论(0) 推荐(1)

摘要:用C编写一个程序(软件),首先要对要编写的程序进行分析。以下是我自己总结的一些设计要点: 1、 首先对程序进行分析,把整个程序分成几个不同的部分,每个部分完成一个功能。这样,每个功能就可以用一个.c文件来实现。 2、 每个.c文件对应的.h文件里存放的是这个部分可以被其他部分使用的函数,如果这些函数的变量或者返回值中有我们自己定义的数据类型,那么就要把相应的数据类型也写在头文件中。.h文件就是外... 阅读全文

posted @ 2011-07-21 16:12 天地玄黄 阅读(666) 评论(0) 推荐(1)

摘要:刚开始我也不知道是怎么回事,后来注意到,在C中,凡是结构体定义时前面都要用struct。 比如我定义了一个struct pcap_pkthdr {...}; 那么在使用这个结构体定义变量时就必须写:struct pcap_pkthdr *header; 阅读全文

posted @ 2011-07-18 20:21 天地玄黄 阅读(376) 评论(0) 推荐(0)

摘要:下面简介一下如何在Visual Studio 2005中使用WinPcap编写程序。这里只是编写程序之前对Visual Studio 2005的配置,具体如何编写程序,请参看具体WinPcap的文档:http://www.winpcap.org/docs/docs_412/html/main.html。 本教程是参考http://www.winpcap.org/docs/docs_412/html/group__wpcapsamps.html而写的。1、 创建一个工程。2、 定义预处理器:在Visual Studio中选择“项目”(project)----->“属性”(propertie 阅读全文

posted @ 2011-07-17 15:21 天地玄黄 阅读(1638) 评论(1) 推荐(0)