Я преобразую свою библиотеку сети IPv4 для поддержки IPv6. Я использую его, чтобы инициировать связь UDP между устройствами на одной локальной сети. Один из устройств транслирует (IPv4) пакет «подключения» (как определено в моем протоколе), который читается устройством прослушивания. Все отлично работает в IPv4. Но мы также должны указать, какой интерфейс использовать в функции sendto () . Я использую функцию getifaddrs () , чтобы запросить список доступных интерфейсов. Я отфильтровал тех, кто не поддерживает IPv6 или многоадресную расстояния, и убедитесь, что они встают. Но это все еще оставляет меня со списком около 6 именованных интерфейсов с различными индексами на моем испытательном устройстве iPhone (en0, en2 , anpi0 , awdl0 , llw0 ). Я пытаюсь отправить пакеты, используя каждый интерфейс. Функция sendto () утверждает, что отправила пакеты для всех интерфейсов, но, используя Wireshark, я вижу, что только один из них - тот, который назван En0 - фактически отправляет пакеты вокруг моей локальной сети.
Итак, мой вопрос - как я знаю, какой интерфейс я должен использовать? И как я узнаю, что какой-либо пакет был на самом деле успешно многоадресной? Список интерфейсов: < /p>
ifaddrs* pFirstIf = nullptr;
if( getifaddrs( &pFirstIf ) == 0 )
{
for( ifaddrs* pIf = pFirstIf; pIf != nullptr; pIf = pIf->ifa_next )
{
const uint32 ifFlags = pIf->ifa_flags;
// Ignore loopback
if( ifFlags & IFF_LOOPBACK )
continue;
// Ensure up and supports multicast
if( ((ifFlags & IFF_UP) == 0) || ((ifFlags & IFF_MULTICAST) == 0) )
continue;
// Check an IP6 family interface
if( pIf->ifa_addr->sa_family != AF_INET6 )
continue;
// Get the interface index
const int ifIndex = if_nametoindex( pIf->ifa_name );
// The address scope id is usually the same as the interface index (or 0 if not)
const sockaddr_in6* pAddr6 = (sockaddr_in6*)pIf->ifa_addr;
// This appears to be a viable interface to use for multicast - or is it? How can we tell?
LOG( "Interface: " ifa_name
Подробнее здесь: https://stackoverflow.com/questions/795 ... -multicast
Как узнать, какие интерфейсы устройства действительно будут работать для многоадресной рассылки IPv6? ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Лучший редактор WYSIWYG для рассылки (или лучший способ использования... для рассылки)
Anonymous » » в форуме Php - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Можно ли запустить виртуальную машину/LXC с ipv6 в кластере proxmox с отключенным ipv6?
Anonymous » » в форуме Linux - 0 Ответы
- 89 Просмотры
-
Последнее сообщение Anonymous
-