我想以一种将“常规”智能手机和平板电脑放入单独子网的方式配置 DHCP 服务器。是否可以根据 DHCP 请求本身来检测 DHCP 请求是来自 Android 还是 iOS 设备?
例如:周围的索尼安卓手机在请求中设置了以下 DHCP 选项,这些选项可能有助于识别
bootp.option.vendor_class_id == "dhcpcd-5.2.10:Linux-2.6.32.9-perf:armv7l:mogami"
bootp.option.hostname == "android-c7d342d011ea6419"
智能手机 DHCP 请求中是否有任何已知的比 MAC 前缀更好的常见模式?
此处的 Android 手机发送了类似的供应商 ID:
然而,iPhone 设备只发送其 MAC 地址和主机名。诺基亚 Symbian 设备 (E71) 也是如此。我的三个设备示例表明只有 Android 设备发送任何有用的东西。通过查找每个客户端请求(SIP 服务器、域搜索)和确实不请求的信息并将其用作“指纹”,您可能会取得一些成功。
然而,在我看来,真正的答案是将“未知”客户端置于默认网络中,并将明确已知的设备置于另一个网络中。
使用主机名来匹配。用户可以更改它,在 Android 上,设置 > 开发人员选项 > 设备主机名。但我敢肯定,你们中 90% 的用户都会保留该设置。iPhone 和 iPad
您可以在 DHCP 服务器中限制网络访问。例如,在 ISC DHCP 中,您可以使用 android 发送的字符串来定义一个类或几个子类:
您可以在添加到 cfg 文件的日志文件中注册此信息以进行调试: