Сокет AF_INET, когда в системе доступны только адреса IPv6?

0

Вы можете открыть сокет AF_INET если в системе доступны только адреса IPv6?

Я пытаюсь получить HWADDR для одной системы, у которой могут быть только активные IPv6-адреса (а не двойной стек).

Смогу ли я открыть сокет, используя AF_INET? Меня интересует только поиск MAC-адреса

  • 0
    Разве вы не можете использовать SIOCGIFHWADDR на сокете AF_INET6 ?
Теги:
ipv6

3 ответа

0
Лучший ответ

Я не вижу проблемы. Вы можете позвонить SIOCGIFHWADDR как на IPv4, так и на IPv6.

Независимо от того, использую ли я AF_INET или AF_INET6 для создания сокета, вызов ioctl() завершается успешно и дает мне HW addr устройства, которое я прошу.

1

Вы, конечно же, можете создать сокет IPv4 с помощью системного вызова socket(). Однако привязка его к интерфейсу IPv6 с помощью bind() завершится неудачно.

  • 0
    Мне нужно только получить HW-адрес с помощью ioctl (флаг SIOCGIFHWADDR)
0

Вы можете создать сокет IPv4. Если бы вы не смогли, система также не смогла бы принять адрес IPv4 при подключении к сети, совместимой с v4, в следующем месяце, см.?

Но я не уверен, что SIOCGIFHWADDR будет работать без маршрутов через интерфейс без обратной циклы. Вы можете попробовать использовать свои целевые системы или просто попробовать AF_INET и AF_INET6, поймать ошибку (-ы) и использовать все, что возвращает результат.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню