當只有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