我想将全局地址转换为链接级地址(或者即使可以进行相反的操作),我在 uip6.c
文件中有以下函数。我想将 rep
(其中 rep
为我提供带有 fe80
之类的前缀的 lladdress)转换为 srcaddr
(其中srcaddr
为我提供全局地址,其前缀类似于 aaaa
),反之亦然。
void
cmpr_addr(void)
{
uip_ds6_route_t *rep;
rep = uip_ds6_route_lookup(&UIP_IP_BUF->srcipaddr);
printf("nexthop: ");
PRINT6ADDR(uip_ds6_route_nexthop(rep));
printf("\n ");
printf("srcaddr: ");
PRINT6ADDR(&UIP_IP_BUF->srcipaddr);
printf("\n ");
}
我之前检查过,没有内置函数可以做到这一点。
最佳答案
这是不可能的。设备的链路本地地址和它可能拥有的任何公共(public)地址之间没有任何关系——它们是通过完全不同的方式获取的。
关于c - 如何在 Contiki 中将链接本地地址转换为全局地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49102091/