我只需要捕获我连接的网络的主机名。我不需要全部流量。 即G。我希望只有" www.google.com"," facebook.com"," plus.google.com"等等 并将它们保存在文件中。 我应该在Android 4.4.2中运行什么TCPDUMP命令? 注:我安装了tcpdump二进制文件 /系统/ bin中/ tcpdump的
答案 0 :(得分:1)
最适合您的tcpdump命令可能是tcpdump -q ip or ip6
。
是没有tcpdump命令,仅显示与数据包的IP源和目标地址对应的主机名 - 您将获得其他信息,例如数据包时间戳和至少尝试剖析数据包的内容,即使使用-q
标志 - 所以你必须做一些后处理来提取域名,但tcpdump文本输出的格式是'n'太难解析 - 你可能会看到像
18:12:01.344016 IP www.sonic.net > 192.168.42.66: ICMP echo reply, id 61009, seq 1, length 64
或
18:13:02.576498 IP 192.168.42.66.60726 > www.sonic.net.http: tcp 0
18:13:02.611576 IP www.sonic.net.http > 192.168.42.66.60726: tcp 0
18:13:02.611653 IP 192.168.42.66.60726 > www.sonic.net.http: tcp 0
18:13:06.235021 IP 192.168.42.66.60726 > www.sonic.net.http: tcp 16
因此您需要删除时间戳和“IP”(或“IP6”),删除冒号及其后的所有内容,并且对于TCP或UDP数据包,从源中删除最后一个“.XXX”和目标地址(除非您想要源端口号和目标端口号/名称;这是TCP或UDP数据包的最后一个组件)。 “>”分隔源地址和目标地址。
这意味着你可能需要安装诸如sed
之类的程序,或者用于脚本语言(如AWK,Perl或Python)的解释器来使用它来进行后处理。 / p>
如果您想要只为 提供源IP地址和目标IP地址的域名,您可能需要自己编写。