Как записать адрес обратной связи IPV6 в форме массива

#ipv6

#ipv6

Вопрос:

Адрес IPV4 был записан как {127, 0, 0, 1 } Как записать адрес обратной связи в IPV6 в этом формате. Нужно ли мне брать массив размером 16??? Нет ли способа получше???

Ответ №1:

Что ж, IPv6 имеет много «сокращенных» форм, так что адрес обратной связи может быть записан как ::1 — однако в массиве вам нужно было бы указать все это по буквам (16 * 8 = 128 бит):

 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }
  

Комментарии:

1. @ Piskvor… Спасибо… это нормально, но есть ли какая-либо функция, которая может преобразовать адрес IPV4 в адрес IPV6. На самом деле в этой части кода memcpy( amp;addr.sin6_addr, address, (int)sizeof( *address)); Я хочу заполнить addr.sin6_addr адресом, который является адресом обратной связи IPV6

2. «преобразовать адрес IPV4 в IPV6″… хм, ну, есть SIIT , но, как правило, не существует предсказуемого сопоставления между адресами IPv4 и IPv6 — наличие одного не гарантирует наличие другого (в большинстве моих случаев адрес IPv6 совершенно не связан с адресом IPv4 того же сетевого интерфейса).