#include #include /*See NOTES*/#include#include#include#include#include#include#include#include#include#include
#define ETH_HDR_LEN 14
void CallBackPacket(char *data)
{
unsignedchar *ethhead;
unsignedchar *iphead;
printf("Recv A Packet.\n");
ethhead=data;
printf("Ethernet: MAC[%02X:%02X:%02X:%02X:%02X:%02X]", ethhead[0], ethhead[1], ethhead[2],
ethhead[3], ethhead[4], ethhead[5]);
printf("->[%02X:%02X:%02X:%02X:%02X:%02X]", ethhead[6], ethhead[7], ethhead[8],
ethhead[9], ethhead[10], ethhead[11]);
printf("type[%04x]\n", (ntohs(ethhead[12]|ethhead[13]<<8)));
iphead= ethhead +ETH_HDR_LEN;//header length as 32-bit
printf("IP: Version: %d HeaderLen: %d[%d]", (*iphead>>4), (*iphead & 0x0f), (*iphead & 0x0f)*4);
printf("TotalLen %d", (