Linux下如何抓指定IP的包

Linux下如何抓指定IP的包,第1张

linux下有命令可直接执行抓包的,命令如下:

1、tcpdump -vv -i ethN -s 10240 -w /root/abc.cap host ip

2、上述命令中,ethN,是你要抓的本机网卡,一般是eth0,可使用ifconfig查看使用的哪个网卡

-s 指定的是抓包数量 -w指定的是抓到的包写到哪个位置 host ip即为抓取哪个ip 的包

查看一下《linux就该这么学》

你用SOCK_RAW的模式建立原始套接字然后接收包。

剩下的就全是分析内容的事情了。。。。最多再用一下多线程。

用到linux下socket编程的最基本知识, 以及对网络协议细节的了解。 前者随便找本socket编程的书就很详细了, 后者你因该懂。

——————

例如, 你需要include以下这些头:

stdio.h,stdlib.h, unistd.h, sys/socket.h, sys/types.h, netinet/if_ether.h, netinet/in.h,

然后建立socket的时候用

socket(PF_PACKET,SOCK_RAW,htons(ETH_P_IP)),这样就能用这个socket来监听以太网的包。

然后循环调用recvfrom函数来听这个socket的接受到的数据, 再分析就好了。

如果要嗅探别人机器的包, 就要用ARP欺骗了。。呵呵


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

原文地址: http://outofmemory.cn/yw/8939597.html

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

发表评论

登录后才能评论

评论列表(0条)

保存