使用winpcap结合VC进行编程,实现“局域网内数据的获取和分析”

使用winpcap结合VC进行编程,实现“局域网内数据的获取和分析”,第1张

/ntohs: conver a unsigned short from net sequence to host sequence

if(ntohs(eh->ether_type) == 0x0800){//只需要IP包

//decode the packet

IPHeader ipPkt = (IPHeader)(pkt_data+14/14 is the ethernet header length/);

int ipLen = (ipPkt->ver_ihl & 0xf) 4;//这个字段表示的数值单位是四个字节(32bit),也就是说这个字段4位,如果为1111的时候,首部的长度是60

针对网络接口、端口和协议的数据包截取。假定你要截取网络接口eth1,端口号6881的tcp数据包。数据文件保存为testpcap。

tcpdump -w testpcap -i eth1 tcp port 6881

很简单吧?如果要同时截取udp端口号33210和33220的数据包呢?

tcpdump -w testpcap -i eth1 tcp port 6881 or udp \( 33210 or 33220 \)

'\'是转义字符,逻辑符号OR是加(+)的意思。其他表达式是截取端口号6881的tcp包加上端口号33210和33220的UDP包。tcpdump过滤表达式的and运算符是交集的意思,因此截取端口号33210和33220的UDP包使用 or 而不是 and。and运算符的用法在下文描述。

怎样保存文件读取数据包呢?

tcpdump -nnr testpcap

选项 -nn 不把网络IP和端口号转换成名字,r(read)读取包。

可以添加 -tttt 选项使时间戳格式更加可读。

tcpdump -ttttnnr testpcap

怎样针对IP截取数据?

需向tcpdump指明IP类型,目的IP还是源IP?比如要嗅探的目的IP为101682822,tcp端口号22。

tcpdump -w testpcap dst 101682822 and tcp port 22

目的IP和端口的交集(intersection),使用and运算符。

嗅探数据包大小缺省为96 bytes,可以指定 -s 改变缺省值。

tcpdump -w testpcap -s 1550 dst 101682822 and tcp port 22

有些版本的tcpdump允许指定端口范围,下述指令为针对一定端口范围截取数据。

tcpdump tcp portrange 20-24

注意,上述指令没有指定 -w 把截取的数据包保存到文件而是直接输出到屏幕。

以上就是关于使用winpcap结合VC进行编程,实现“局域网内数据的获取和分析”全部的内容,包括:使用winpcap结合VC进行编程,实现“局域网内数据的获取和分析”、ARP攻击是怎样把一个电脑的IP伪装成网关的、「编程工具]JGroups 4.1.0 解析 PCAP 文件同时使用 IPv4 与 IPv6等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9724675.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存