Max*_*lov 22 network-programming mac-address ipv6 ios tvos
我需要找到一个解决方案,如何从WiFi网络中的其他设备获取MAC地址.有一个很好的方法如何为IPv4执行此操作(iOS应用程序如何获取MAC地址?),但如何为IPv6执行此操作?由于ARP被NDP(邻居发现协议)取代,后一种方法不起作用.如果有人能帮助我,我将不胜感激.
网络架构是分层的,上层封装了下层的不同实现,提供了相对于下层更高的抽象。使用IP的网络层封装了不同的链路层协议,如以太网、WiFi、PPP(可能运行在不使用MAC地址的串行电缆上)等。
remote?如果您的意思是 WAN 中的其他主机,则除非两个设备都实现特定协议,否则这是不可能的:您向这些设备发送请求,它们回复他的 mac 地址。
如果您指的是同一局域网中的其他主机,则可以在 IPv4 中使用 ARP 协议,在 IPv6 中使用 NDP(其中)。
ARP 在局域网中发送广播,当它知道主机的 IP 地址但不知道 MAC 地址时,然后找到有人呼叫的主机回复其 MAC 地址。
NDP 提供两个主要功能部分,第一部分与 ARP 相同:网络层地址和链路层地址之间的映射。(不同之处在于NDP使用多播地址:前缀f02::1:f/104,结合请求的IPv6地址的低24位)
所以你需要的是发送ICMPv6 Neighbor Solicitation消息。
链路本地 IPv6 地址(和一些全局 IPv6 地址)使用接口标识符 (IID) 作为单播 IPv6 地址分配的基础。... IID 通常为 64 位长,并且直接从使用修改后的 EUI-64 格式的网络接口的底层链路层 MAC 地址形成。或者通过另一个随机化值的过程,以期为地址跟踪提供一定程度的隐私。
因此,在最常见的情况下,您可以直接从设备的 IPv6 链路本地地址获取设备的 MAC 地址。
| 归档时间: |
|
| 查看次数: |
1178 次 |
| 最近记录: |