android - 如何读取dhcp服务器的数据?

标签 android linux networking wifi dhcp

我想了解所有连接到 dhcp 服务器的设备。 我有设备的 IP,它可能是 Android 手机或打印机,但我认为 dhcp 拥有该设备的信息。

我在 dhcp 协议(protocol)栈中得到了类似“供应商信息”的信息。

我的疑问是我必须确定网络上至少有一部 Android 手机, 这是否可能。或者如何识别 Android 手机是网络之一。我也有 Android 的 IP,但我没有从任何方式获取任何信息。

我有类似nmap的东西,但这个工具没有给出手机的具体细节。nmap提供的信息令人困惑,我无法识别它是手机还是Linux系统,因为这两个系统都以Linux作为操作系统。

然后我得到了 dhcp 供应商信息:但我不知道如何读取这些数据..

请提出任何建议......我的项目需要。

谢谢

最佳答案

您将遇到的问题是,现代交换机将阻止您嗅探发往特定 MAC 地址的流量,因此如果它是硬连线的,那么您将会遇到麻烦。另一方面,如果它是不安全的 WiFi 连接,或者带有集线器的网络(现在很少见!)而不是交换机,那么您可能还有机会。

您需要将以太网 Controller 切换到混杂模式并监听 DHCP REQUEST 和 DHCP OFFER 命令,检查内容并查看发生了什么。

另一种方法是监听网络上的 ARP 和 RARP 请求,并使用 MAC id 的硬件查找表来确定谁制造了芯片组,它不会给你带来很高的准确性,因为很多芯片在不同的设备上重复使用,但它可能会给你更多的信息。

就 DHCPd 服务器而言,除非您有权访问该物理机,否则 DHCP 被设计为提供协议(protocol),而不是查询协议(protocol)。

关于android - 如何读取dhcp服务器的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11666832/

相关文章:

android - 在 Android API 1.5 上使用 SAX 解析器 (javax.xml.parsers.SAXParser) 解析引号时出现问题

android - 是否可以将缩放控件移动到 OSMdroid 屏幕上的不同位置

启动时选择 Android 设计支持库选项卡

c++ - 同一系统上的两个版本的 glibc

java - HBase:Zookeeper 告诉远程客户端连接到本地主机

linux - 使用 rtnetlink 套接字在 linux 路由表中安装新路由

linux - Ubuntu 终端 : grep for numbers compare

linux - 在 curl 获取的 2 个文件之间添加一个新行

ajax - 从单个浏览器排序 HTTP 调用

c# - 无需 oAuth 的 Instagram 登录