当只有IPv6地址在系统上可用时,您可以打开AF_INET
套接字吗?当只有IPv6地址在系统上可用时AF_INET套接字?
我想获得HWADDR可能只有IPv6地址活动(不是双栈)的系统。
我能用AF_INET
打开一个插座吗?我只对找到MAC地址感兴趣
当只有IPv6地址在系统上可用时,您可以打开AF_INET
套接字吗?当只有IPv6地址在系统上可用时AF_INET套接字?
我想获得HWADDR可能只有IPv6地址活动(不是双栈)的系统。
我能用AF_INET
打开一个插座吗?我只对找到MAC地址感兴趣
我看不到问题。您可以在IPv4和IPv6套接字上拨打SIOCGIFHWADDR
。
无论我使用AF_INET
还是AF_INET6
创建套接字,ioctl()
调用都会成功,并为我提供所需设备的硬件地址。
您肯定可以使用系统调用socket()
创建一个IPv4套接字。但是,使用bind()
将其绑定到IPv6接口将会失败。
我只需要它使用ioctl(SIOCGIFHWADDR标志)来获取硬件地址, –
您可以创建一个IPv4套接字。如果您不能,系统在下个月连接到v4网络时也无法接受IPv4地址,请参阅?
但我不确定SIOCGIFHWADDR将无路由通过非回送接口工作。你可以尝试一下你的目标系统,或者试试AF_INET和AF_INET6,捕获错误并使用任何返回结果。
你不能在'AF_INET6'套接字上使用'SIOCGIFHWADDR'吗? – glglgl