当我使用ether_ntoa时,它打印出目的地为第一个和第二个来源的地址(因为前6个字节用于目的地)。我该如何扭转此订单?这是打印输出的代码:
printf("%s",ether_ntoa((struct ether_addr*)packet_data)); //want to print source
printf(" -> ");
printf("%s \n",ether_ntoa((struct ether_addr*)packet_data)); //want to print destination
答案 0 :(得分:0)
尝试
printf("%s\n", ether_ntoa((struct ether_addr*) packet_data)); // prints source
printf("%s\n", ether_ntoa((struct ether_addr*) ((char*) packet_data) + 6))); // prints destination