32 #include "ip64-addr.h"
46 ip64_addr_copy6(uip_ip6addr_t *dest,
const uip_ip6addr_t *src)
48 memcpy(dest, src,
sizeof(uip_ip6addr_t));
53 uip_ip6addr_t *ipv6addr)
71 ipv6addr->u8[10] = 0xff;
72 ipv6addr->u8[11] = 0xff;
73 ipv6addr->u8[12] = ipv4addr->u8[0];
74 ipv6addr->u8[13] = ipv4addr->u8[1];
75 ipv6addr->u8[14] = ipv4addr->u8[2];
76 ipv6addr->u8[15] = ipv4addr->u8[3];
77 printf(
"ip64_addr_4to6: IPv6-encoded IPv4 address %d.%d.%d.%d\n",
78 ipv4addr->u8[0], ipv4addr->u8[1],
79 ipv4addr->u8[2], ipv4addr->u8[3]);
86 ip64_addr_6to4(
const uip_ip6addr_t *ipv6addr,
96 if(ipv6addr->u8[0] == 0 &&
97 ipv6addr->u8[1] == 0 &&
98 ipv6addr->u8[2] == 0 &&
99 ipv6addr->u8[3] == 0 &&
100 ipv6addr->u8[4] == 0 &&
101 ipv6addr->u8[5] == 0 &&
102 ipv6addr->u8[6] == 0 &&
103 ipv6addr->u8[7] == 0 &&
104 ipv6addr->u8[8] == 0 &&
105 ipv6addr->u8[9] == 0 &&
106 ipv6addr->u8[10] == 0xff &&
107 ipv6addr->u8[11] == 0xff) {
108 ipv4addr->u8[0] = ipv6addr->u8[12];
109 ipv4addr->u8[1] = ipv6addr->u8[13];
110 ipv4addr->u8[2] = ipv6addr->u8[14];
111 ipv4addr->u8[3] = ipv6addr->u8[15];
113 printf(
"ip64_addr_6to4: IPv6-encoded IPv4 address %d.%d.%d.%d\n",
114 ipv4addr->u8[0], ipv4addr->u8[1],
115 ipv4addr->u8[2], ipv4addr->u8[3]);
Representation of an IP address.