在手机行业中,肯定测试数据业务、wifi,当然还有测试专网业务的(做集群、专网这块的人应该知道),有时一个手机中有专网、公网(三大运营商)、wifi的数据业务,当然这里面肯定有优先级,自己也知道,但是怎么去判断手机到底用的什么数据呢?

当然,有很多中方法可以判断、对比法、热点共享法等手法,但是这里我还是给大家介绍下有点逼格的,需要输入命令的形式,这样才体现出我们的水平。

(因为公司网络限制上传截图,大家就按照我的步骤看吧)

第一步:打开一个cmd窗口

输入:adb devices 

这步是确认手机是否与电脑连接成功,有没有端口;
 

第二步:输入adb shell 

这里确保手机已经root状态(显示root@billy:/ #),有个#号是说明已经root了,应该有内部root密码,不知道问研发,adb shell
 

第三步:输入netcfg,查询当前手机所使用的网口,

root@billy:/ #  netcfg
 窗口中找有up 显示的端口,显示down口的就不用管它,

解释下(注意不一定是0,所以要netcfg查看,):
 eth0属于专网口---要确认专网数据能不能用就找这个,一般会默认含有;
 rement0属于公网口---要确认公网数据能不能用就找这个,这个插电信、移动、联通卡也会默认含有;
 Wlan0属于公网wifi网口---要确认wifi数据能不能用就找这个,不连接wifi就没有Wlan口显示;


第四步:这步说明下,要判断那个业务,就使用哪个网口,有执行抓包的,就说明手机一直在使用该数据;

(1)输入tcpdump -i  eth0 ,使用专网网口抓包,

如:root@billy:/#  tcpdump -i  eth0

当走公网数据业务,此命令显示没有执行抓包程序,反之,走公网数据就会一直抓包,界面会一直显示;

(2)输入tcpdump -i rmnet0,使用公网网口抓包,反之,走公网数据就会一直抓包,界面会一直显示;

如:root@billy:/#  tcpdump -i rmnet0

当不走公网数据业务,此命令显示没有执行抓包程序

(3)输入 tcpdump -i wlan0 ,使用wlan网口抓包,

如:root@billy:/#  tcpdump -i wlan0 
当不走wifi数据业务,此命令显示没有执行抓包程序,反之,走公网数据就会一直抓包,界面会一直显示;
 

注意:手机要在使用数据的情况下才会显示抓包,如:上QQ、微信、浏览网页等,否则也不执行抓包的;

第五步:不用手机使用数据业务,我们可以采用ping网页的方式判断;

另开启cmd窗口(这一步是确定第3步哪个口可以抓包就是走哪个数据业务)

输入:
adb shell ping 79.79.0.14 ---是ping本机ip地址,确认电脑和手机是否连通

再ping百度:
adb shell ping www.baidu.com ---记住,不加adb shell的是用电脑本身的网络,adb shell 说明用的是手机的网络

第五步执行ping百度的时候,在第四步打开对应的网口就会自动抓包,cmd界面可以看到,说明使用当前业务;

举例:手机插有公网卡,在连接可用wifi,判断当前手机使用的是公网的还是wifi的数据;

一般我们知道手机优先使用wifi,所以我们先判断wlan0口是否在抓包(第四步(3)),在抓就说明用的是wifi数据,当然此时在看rmnet0口是不会抓包的(第四步(2)),应该是不能上的,否则就得判断下公网数据是不是流出去了,这就是问题。

作者:享有盛誉之名