我在Android上捕获3G上的数据包,并且得到奇怪的输出。我看到了mac地址而不是IP地址,并且不知道如何解码它。当我通过WIFI运行相同的捕获时,我会看到IP地址。它看起来好像需要为3G接口更改链接类型。tcpdump - 通过Android上的3G /移动数据的奇怪输出
目前,我只在数据链接类型列表(tcpdump -L)下看到“EN10MB(以太网)”选项。我在tcpdump网站上看到不同的链接类型(http://www.tcpdump.org/linktypes.html),我想我可能需要重新编译源代码,以便在数据链接类型下获得“LINKTYPE_GPRS_LLC”以获得正确的捕获。
有谁知道如何做到这一点?我有libpcap(v0.9.8)和tcpdump(v3.9.8)(与AOSP 4.2.1源代码一起)的源代码。
谢谢,我真的很期待听到你们。
下面是一个示例输出,我得到了一个捕获了3G接口:
平google.com
tcpdump的-vvvs 0
22:11:51.450906 40:00:40: 11:12:18(oui未知)> 45:00:00:38:66:22(oui未知),ethertype Unknown(0x1528),长度56: 0x0000:4a4b 4201 2107 bad2 0035 0024 5a5e 140c JKB。!。 5。$ Z^.. 0x0010:0100 0001 0000 0000 0000 0667 6f6f 676c ........... googl 0x0020:6503 636f 6d00 0001 0001 e.com .....
22:11:52.363748 00:00:fd:11:0c:9c(oui Unknown)> 45:00:00:e8:ed:ed(oui Unknown),ethertype Unknown(0x4201),length 232:
感谢哈里斯。感谢你的帮助。我发现问题是什么。 –
问题是,我记得,有些守护进程(DHCP守护进程)要求该接口具有链路层包头类型,如'ARPHRD_ETHERNET',他们(无论是谷歌的人或负责的Android移植到人你的手机)提供了一个非ARPHRD_'类型而非'ARPHRD_NONE'的非以太网接口,因此完全占用了libpcap。我想我们必须把一些废话放进libpcap来解决这个问题,叹气。 (Linux +网络+ libpcap =痛苦。) – 2014-03-21 02:10:06
现在将垃圾扔进libpcap存储库的主干中。 – 2014-03-21 18:11:38