当我使用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
尝试
printf("%sn", ether_ntoa((struct ether_addr*) packet_data)); // prints source
printf("%sn", ether_ntoa((struct ether_addr*) ((char*) packet_data) + 6))); // prints destination