Я пытаюсь преобразовать IPv4 в IPv6, используя некоторое преобразование в uint8_t. Я знаю, что IPv4 имеет 4 байта, а IPv6 16 без знака int 2 байта, но я не могу найти способ сделать это преобразование.Преобразование IPv4 в IPv6 на C
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main() {
uint8_t ipv6[16],direccionIP[] = {193, 110, 128, 200};
ipv6 = &direccionIP; //this doesn't work, and I don't come up with any method
printf("%u", ipv6);
return 0;
}
Вы не можете установить пинту в квартете –
Что конкретно вы имеете в виду, конвертировав IPv4 в IPv6? Адресация несовместима, и ваше представление о том, какой адрес IPv6, кажется, является ошибочным. Адрес IPv4 представляет собой 32-разрядное целое число, а IPv6-адрес - 128-битное целое число. –