c - 如何在 Contiki 中将链接本地地址转换为全局地址

标签 c contiki

我想将全局地址转换为链接级地址(或者即使可以进行相反的操作),我在 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/

相关文章:

在嵌入式设备上转换指针

c - 需要一个在 Contiki 中使用 mmem 的例子

组合 _Generic 宏

c - 逐行读取并存储在结构体数组中

c - 正确使用 malloc

c - 输入的动态内存分配?

c++ - 可移植可执行 DOS header 长度

c - RAM 和 ROM 使用情况

c - 处理结构体c

c - 尝试使用线程和计时器通过 UDP 发送两条不同的消息失败