Wireshark for Nokia LCD

Dependencies:   NokiaLCD mbed

Fork of Wireshark by Alvin McNair

main.cpp

Committer:
westsand
Date:
2013-03-01
Revision:
0:126d1599825c
Child:
1:c0d6b1d426e8

File content as of revision 0:126d1599825c:

#include "mbed.h"
#include <string>
DigitalOut myled(LED1);

Ethernet eth;

string Protocol(int num){
string s;
switch(num){
    case 17 : 
    s="UDP";
    break;
    case 1 : 
    s="ICMP";
    break;
    case 6 : 
    s="TCP";
    break;
    case 89 : 
    s="OSPF";
    break;
    case 2 : 
    s="IGMP";
    break;
    case 103 : 
    s="PIM";
    break;
    default :
    s="None";
    }



return s;

}
 
int main() {
    int number=0;
    int type;
    char ver, prot;
    char hlen;
    char servtype;
    short tot_len,ident;
    string k;
    myled=1;
    char buf[0x600];
    
    int* length=(int *)(buf+12);
 
    while(1) {
        myled=!myled;
        number++;
        int size = eth.receive();
        if(size > 0) {
            eth.read(buf, size);
            type=(buf[12]<<8|buf[13]);
            ver= buf[14]>>4;
            hlen=buf[14]&0xF;
            servtype=buf[15];
            tot_len=(buf[16]<<8|buf[17]);
            ident=(buf[18]<<8|buf[19]);
            prot=buf[23];
            
                    //ip packet starts at 14
                    // the IP address starts at 
            
            if(type==0x800){
                    printf("Number:%i\r\n",number);
            printf("Destination:  %02X:%02X:%02X:%02X:%02X:%02X\r\n",
                    buf[0], buf[1], buf[2], buf[3], buf[4], buf[5]);
            printf("Source: %02X:%02X:%02X:%02X:%02X:%02X\r\n",
                    buf[6], buf[7], buf[8], buf[9], buf[10], buf[11]);
            printf("Type %02X\r\n",type);
                    printf("Length:%i\r\n",size);
                    k=Protocol(prot);
            printf("Protocol  %i: %s\r\n",prot,k);
            printf("IP Source:  %i.%i.%i.%i\r\n",
                    buf[26], buf[27], buf[28], buf[29]);
            printf("IP Destination : %i.%i.%i.%i\r\n",
                    buf[30], buf[31], buf[32], buf[33]);}
            
                    
        }
 
        wait(1);
    }
}