荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: jjk (kernel), 信区: Linux
标  题: 和我一起学libpcap(2.1)(转寄)
发信站: 荔园晨风BBS站 (Sat Mar  2 22:39:21 2002), 转信

【 以下文字转载自 jjk 的信箱 】
【 原文由 jjksam@smth.org 所发表 】
发信人: doggy (不能回家好无聊), 信区: Linux
标  题: 和我一起学libpcap(2.1)(转寄)
发信站: BBS 水木清华站 (Mon Feb  4 04:54:27 2002)

本文版权所有:doggy(chaujy@x263.net) 欢迎转载

2.使用进阶篇

刚才我们对程序的要求是能编译通过,能运行成功
现在我们让这个程序实用点吧

2.1 其它几个函数介绍
这几个函数的特点是简单但无关紧要

现在我们隆重退出
char * pcap_lookupdev ( char * errbuf );
这个函数就是查找本机上的网络接口设备,我机器上就返回"eth0",
在pcap_open_live之前用,没什么意思吧,反正我是不爱用它

int     pcap_lookupnet(char *, bpf_u_int32 *, bpf_u_int32 *, char *);
第一个参数就是pcap_lookupdev返回的接口名,二三参数都是32位无符号数,
分别是IP网段和掩码,最后那个参数还是ebuf

int     pcap_datalink(pcap_t *);
它返回你的网络类型,如 DLT_EN10MB 就是10M以太网
让人ft的是这些常量定义不在pcap.h中,在哪?自己找找吧;-)

int     pcap_snapshot(pcap_t *);
返回最长抓多少字节,就是我们在pcap_open_live中第二个参数设置的

int     pcap_stats(pcap_t *, struct pcap_stat *);
计数,共抓了多少过滤掉了多少,看看struct pcap_stat的定义就明白了
struct pcap_stat {
        u_int ps_recv;          /* number of packets received */
        u_int ps_drop;          /* number of packets dropped */
        u_int ps_ifdrop;        /* drops by interface XXX not yet supported */
};

int     pcap_major_version(pcap_t *);
int     pcap_minor_version(pcap_t *);
版本号,你有用么?


--
我宁愿尝试两个人的磨合
也不要继续一个人的寂寞


※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.169.39]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.146]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店