在 Android 上,如何在网络层 (IP) 上捕获传入的数据包?
Posted
技术标签:
【中文标题】在 Android 上,如何在网络层 (IP) 上捕获传入的数据包?【英文标题】:On Android, how to capture incoming packet on network layer (IP)? 【发布时间】:2019-12-12 16:00:42 【问题描述】:目前在android平台上,有Android应用可以借助***Service
在Application层抓包。但是,正如文档描述的那样
(使用 ***Service 返回的 fd)每次从描述符中读取都会检索路由到接口的传出数据包。每次写入描述符都会注入一个传入数据包,就像从接口接收到的数据包一样。
这表明我们无法通过***获取网络层(IP)上的传入数据包;如果我们使用套接字,我们会丢失网络层数据包的粒度。
有没有什么方法可以在安卓设备上获取传入的 IP 数据包而无需 root ?
【问题讨论】:
【参考方案1】:在网络设备上抓取数据包,而不是在您的接入点/交换机/路由器/防火墙上。通常他们有内置的工具。 如果你在你的电脑上设置一个接入点并将手机连接到它,你可以获取这些数据包https://www.youtube.com/watch?v=CojA2ZZPiKs
【讨论】:
有很多方法可以在路由器、PC 或 root 的 Android 设备上完成,但它们不是我想要的。以上是关于在 Android 上,如何在网络层 (IP) 上捕获传入的数据包?的主要内容,如果未能解决你的问题,请参考以下文章