我想将struct ether_addr(ether_addr_octet)转换为整数主机字节顺序表示。有什么想法吗?
ntohl(eth->ether_addr_octet)
无效,因为ether_addr_octet
是一个char数组。
此致
答案 0 :(得分:0)
我不确定这将是什么语义。 以太是48位,最大的ntoh *是32位值。 我想你可以创建一个解析char数组的64位值,然后调用ntohl()两次......
答案 1 :(得分:0)
你可以把它转换成char然后你可以做你想要的其他事情......
char *ether_ntoa_my(const struct ether_addr *addr){
static char buf[18];
sprintf(buf, "%02x%02x:%02x%02x:%02x%02x",
addr->ether_addr_octet[0], addr->ether_addr_octet[1],
addr->ether_addr_octet[2], addr->ether_addr_octet[3],
addr->ether_addr_octet[4], addr->ether_addr_octet[5]);
return buf;
}
我希望它有所帮助