wireshark或IPAnalyse 抓取不到本地回路的数据包

用自己电脑同时做Server和Client,想用WireShark来抓包分析一下问题,却抓取不到

原因分析

因为WireShark只能抓取经过电脑网卡的包,由于我是使用localhost或者127.0.0.1进行测试的,流量是不经过电脑网卡的,Windows TCP/IP下没有本地回路的接口,所以不能用常用的windows抓包驱动获取到。比如winpcap,而wireshark是基于winpcap的,所以抓取不到,下面是解决方法

 

方法一:

1 . 以管理员身份打开命令提示符

2 . 添加路由

输入 route add 本机ip mask 255.255.255.255 网关ip 

如果不知道本机ip和网关ip,可以在命令行输入ipconfig查看 
eg: 

route add 192.168.2.100 mask 255.255.255.255 192.168.2.1

(意思是:所有需要发往192.168.2.100 地址段的IP数据包,全部由 192.168.2.1 路径转发)

3. 将我们程序里面的localhost或者127.0.0.1替换成本机ip

4 . 使用WireShark即可抓到本地包

5 . 调试完成后删除路由

使用route delete 本机ip mask 255.255.255.255 网关ip来删除我们上面的更改,不然我们本机的所有报文都会先经过网卡再回到本机,会比较消耗性能。

eg:  

route delete 192.168.2.100 mask 255.255.255.255 192.168.2.1

 

方法二:

1.使用 别的抓包工具

比如 smsniff  可以选择列 可以右键导出数据流等等

比如 RawCap 没有用过

比如 WSExplorer 在.net控制台应用程序或者WInForm中比较合适,自己在测试一遍

 

posted @ 2018-05-16 06:24  maanshancss  阅读(2341)  评论(0编辑  收藏  举报