<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2802" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV dir=ltr align=left><SPAN class=756210214-12022006><FONT face=Arial 
color=#0000ff size=2>(u_char *) is correct as Martin says. Sorry about the 
mistyping.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=756210214-12022006><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=756210214-12022006><FONT face=Arial 
color=#0000ff size=2>Vidar</FONT></SPAN></DIV><BR>
<DIV class=OutlookMessageHeader lang=no dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>Fra:</B> winpcap-users-bounces@winpcap.org 
[mailto:winpcap-users-bounces@winpcap.org] <B>Pċ vegne av</B> Mario und Martina 
Müller<BR><B>Sendt:</B> 10. februar 2006 15:46<BR><B>Til:</B> 
winpcap-users@winpcap.org<BR><B>Emne:</B> SV: [Winpcap-users] how to open the IP 
packet data<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV><FONT face=Arial size=2>Hello,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>thank yo for your help.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>i added the code, but i get the 
error-message:</FONT></DIV>
<DIV><FONT face=Arial size=2>"invalid conversion from `int' to `char*' " in the 
codeline:</FONT></DIV>
<DIV><FONT face=Arial size=2>payload = (u_char)pkt_data + SIZE_ETHERNET + 
size_ip + size_tcp;</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>i dont know whats wrong.</FONT></DIV>
<DIV><FONT face=Arial size=2>to see the packet data it must be a string and not 
an integer.</FONT></DIV>
<DIV><FONT face=Arial size=2>how can i see the packet data?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Here is the compled sourcecode:</FONT></DIV>
<DIV><FONT face=Arial size=2>THANK YOU FOR HELP</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>#include "pcap.h"<BR>#include 
&lt;windows.h&gt;</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>#define ETHER_ADDR_LEN 6<BR>struct ethernet_header 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; u_char&nbsp; 
ether_dhost[ETHER_ADDR_LEN];&nbsp;&nbsp;&nbsp; /* destination host 
address<BR>*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; u_char&nbsp; 
ether_shost[ETHER_ADDR_LEN];&nbsp;&nbsp;&nbsp; /* source host address 
*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; u_short 
ether_type;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/* IP? ARP? RARP? etc */<BR>};</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>// 6 byte MAC Address <BR>typedef struct 
mac_address { <BR>&nbsp;&nbsp;&nbsp; u_char byte1; <BR>&nbsp;&nbsp;&nbsp; u_char 
byte2; <BR>&nbsp;&nbsp;&nbsp; u_char byte3; <BR>&nbsp;&nbsp;&nbsp; u_char byte4; 
<BR>&nbsp;u_char byte5; <BR>&nbsp;u_char byte6; <BR>}mac_address; </FONT></DIV>
<DIV>&nbsp;</DIV><FONT face=Arial size=2>
<DIV><BR>// 4 bytes IP address <BR>typedef struct ip_address{ 
<BR>&nbsp;&nbsp;&nbsp; u_char byte1; <BR>&nbsp;&nbsp;&nbsp; u_char byte2; 
<BR>&nbsp;&nbsp;&nbsp; u_char byte3; <BR>&nbsp;&nbsp;&nbsp; u_char byte4; 
<BR>}ip_address; </DIV>
<DIV>&nbsp;</DIV>
<DIV><BR>// 20 bytes IP Header <BR>typedef struct ip_header{ 
<BR>&nbsp;&nbsp;&nbsp; u_char ver_ihl; // Version (4 bits) + Internet header 
length (4 bits) <BR>&nbsp;&nbsp;&nbsp; u_char tos; // Type of service 
<BR>&nbsp;&nbsp;&nbsp; u_short tlen; // Total length <BR>&nbsp;&nbsp;&nbsp; 
u_short identification; // Identification <BR>&nbsp;&nbsp;&nbsp; u_short 
flags_fo; // Flags (3 bits) + Fragment offset (13 bits) <BR>&nbsp;&nbsp;&nbsp; 
u_char ttl; // Time to live <BR>&nbsp;&nbsp;&nbsp; u_char proto; // Protocol 
<BR>&nbsp;&nbsp;&nbsp; u_short crc; // Header checksum <BR>&nbsp;&nbsp;&nbsp; 
ip_address saddr; // Source address <BR>&nbsp;&nbsp;&nbsp; ip_address daddr; // 
Destination address <BR>&nbsp;// u_int op_pad; // Option + Padding -- NOT 
NEEDED! <BR>}ip_header; </DIV>
<DIV>&nbsp;</DIV>
<DIV>//"Simple" struct for TCP<BR>typedef struct tcp_header { <BR>&nbsp;u_short 
sport; // Source port <BR>&nbsp;u_short dport; // Destination port 
<BR>&nbsp;u_int seqnum; // Sequence Number <BR>&nbsp;u_int acknum; // 
Acknowledgement number <BR>&nbsp;u_char th_off; // Header length 
<BR>&nbsp;u_char flags; // packet flags <BR>&nbsp;u_short win; // Window size 
<BR>&nbsp;u_short crc; // Header Checksum <BR>&nbsp;u_short urgptr; // Urgent 
pointer...still don't know what this is...</DIV>
<DIV>&nbsp;</DIV>
<DIV>}tcp_header;&nbsp; <BR>typedef struct udp_header{<BR>&nbsp;&nbsp;&nbsp; 
u_short sport;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Source 
port<BR>&nbsp;&nbsp;&nbsp; u_short 
dport;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Destination 
port<BR>&nbsp;&nbsp;&nbsp; u_short 
len;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
Datagram length<BR>&nbsp;&nbsp;&nbsp; u_short 
crc;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
Checksum<BR>}udp_header;</DIV>
<DIV>&nbsp;</DIV>
<DIV>int main()<BR>{<BR>&nbsp;pcap_if_t *alldevs;<BR>&nbsp;pcap_if_t 
*d;<BR>&nbsp;int inum;<BR>&nbsp;int i=0;<BR>&nbsp;pcap_t *adhandle;<BR>&nbsp;int 
res;<BR>&nbsp;char errbuf[PCAP_ERRBUF_SIZE];<BR>&nbsp;struct tm 
*ltime;<BR>&nbsp;char timestr[16];<BR>&nbsp;struct pcap_pkthdr 
*header;<BR>&nbsp;const u_char *pkt_data;<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;/* Retrieve the device list 
*/<BR>&nbsp;if(pcap_findalldevs(&amp;alldevs, errbuf) == 
-1)<BR>&nbsp;{<BR>&nbsp;&nbsp;fprintf(stderr,"Error in pcap_findalldevs: %s\n", 
errbuf);<BR>&nbsp;&nbsp;return -1;<BR>&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp; /* Print the list */<BR>&nbsp;&nbsp;&nbsp; for(d=alldevs; 
d; d=d-&gt;next)<BR>&nbsp;&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("%d. %s", ++i, 
d-&gt;name);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if 
(d-&gt;description)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf(" (%s)\n", 
d-&gt;description);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf(" (No description available)\n");<BR>&nbsp;&nbsp;&nbsp; 
}<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp; if(i==0)<BR>&nbsp;&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("\nNo interfaces found! 
Make sure WinPcap is 
installed.\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 
-1;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 
printf("Enter the interface number (1-%d):",i);<BR>&nbsp;&nbsp;&nbsp; 
scanf("%d", &amp;inum);<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; if(inum 
&lt; 1 || inum &gt; i)<BR>&nbsp;&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("\nInterface number out 
of range.\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Free the device 
list */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
pcap_freealldevs(alldevs);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 
-1;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp; /* Jump to the 
selected adapter */<BR>&nbsp;&nbsp;&nbsp; for(d=alldevs, i=0; i&lt; inum-1 
;d=d-&gt;next, i++);<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;/* Open the adapter 
*/<BR>&nbsp;if ((adhandle= pcap_open_live(d-&gt;name,&nbsp;// name of the 
device<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 65536,&nbsp;&nbsp;&nbsp;// 
portion of the packet to capture. 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 65536 
grants that the whole packet will be captured on all the 
MACs.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0,&nbsp;&nbsp;&nbsp;&nbsp;// 
promiscuous mode (nonzero means 
promiscuous)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
1000,&nbsp;&nbsp;&nbsp;// read 
timeout<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; errbuf&nbsp;&nbsp;&nbsp;// 
error buffer<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )) == 
NULL)<BR>&nbsp;{<BR>&nbsp;&nbsp;fprintf(stderr,"\nUnable to open the adapter. %s 
is not supported by WinPcap\n", d-&gt;name);<BR>&nbsp;&nbsp;/* Free the device 
list */<BR>&nbsp;&nbsp;pcap_freealldevs(alldevs);<BR>&nbsp;&nbsp;return 
-1;<BR>&nbsp;}<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; printf("\nlistening 
on %s...\n", d-&gt;description);<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp; /* At this 
point, we don't need any more the device list. Free it */<BR>&nbsp;&nbsp;&nbsp; 
pcap_freealldevs(alldevs);<BR>&nbsp;<BR>&nbsp;/* Retrieve the packets */</DIV>
<DIV>&nbsp;</DIV>
<DIV>int size_ip;<BR>int size_tcp;<BR>int SIZE_ETHERNET;<BR>&nbsp;&nbsp;&nbsp; 
ip_header *ih;<BR>&nbsp;&nbsp;&nbsp; tcp_header *tcph;<BR>&nbsp;&nbsp;&nbsp; 
udp_header *uh;<BR>&nbsp;&nbsp;&nbsp; u_int ip_len;<BR>&nbsp;&nbsp;&nbsp; 
u_short sport,dport;<BR>&nbsp;while((res = pcap_next_ex( adhandle, &amp;header, 
&amp;pkt_data)) &gt;= 0){&nbsp;<BR>&nbsp;&nbsp;if(res == 
0)<BR>&nbsp;&nbsp;&nbsp;/* Timeout elapsed 
*/<BR>&nbsp;&nbsp;&nbsp;continue;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp; const struct ethernet_header *ethernet;&nbsp;/* The 
ethernet header */<BR>const struct ip_header *ip;&nbsp;&nbsp;&nbsp;/* The IP 
header */<BR>const struct tcp_header *tcp;&nbsp;&nbsp;&nbsp;/* The TCP header 
*/<BR>char *payload;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* Pointer to packet 
payload<BR>*/<BR>ethernet = (struct ethernet_header*)(pkt_data);<BR>ip = (struct 
ip_header*)(pkt_data + SIZE_ETHERNET);<BR>size_ip = (ip-&gt;ver_ihl &amp; 0xf) * 
4; //Gets length of IP header with options<BR>if (size_ip &lt; 20) 
{<BR>&nbsp;printf("&nbsp;&nbsp; * Invalid IP header length: %u bytes\n", 
size_ip);<BR>&nbsp;return NULL;<BR>}<BR>tcp = (struct tcp_header*)(pkt_data + 
SIZE_ETHERNET + size_ip); //TCP header<BR>size_tcp = tcp-&gt;th_off/4;<BR>if 
(size_tcp &lt; 20) {<BR>&nbsp;printf("&nbsp;&nbsp; * Invalid TCP header length: 
%u bytes\n", size_tcp);<BR>&nbsp;return&nbsp; NULL;<BR>}<BR>payload = 
(u_char)pkt_data + SIZE_ETHERNET + size_ip + size_tcp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; &nbsp;<BR>&nbsp;&nbsp;/* convert 
the timestamp to readable format 
*/<BR>&nbsp;&nbsp;ltime=localtime(&amp;header-&gt;ts.tv_sec);<BR>&nbsp;&nbsp;strftime( 
timestr, sizeof timestr, "%H:%M:%S", ltime);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
ih = (ip_header *) (pkt_data +<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
14);<BR>&nbsp;&nbsp;&nbsp; ip_len = (ih-&gt;ver_ihl &amp; 0xf) * 
4;<BR>&nbsp;&nbsp;&nbsp; uh = (udp_header *) ((u_char*)ih + ip_len);</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp; /* convert from network byte order to host byte order 
*/<BR>&nbsp;&nbsp;&nbsp; sport = ntohs( uh-&gt;sport );<BR>&nbsp;&nbsp;&nbsp; 
dport = ntohs( uh-&gt;dport );<BR>&nbsp;&nbsp;printf("%s: %d.%d.%d.%d:%d 
--&gt;&nbsp; %d.%d.%d.%d:%d&nbsp; - ", timestr,&nbsp; 
ih-&gt;saddr.byte1,ih-&gt;saddr.byte2,ih-&gt;saddr.byte3,ih-&gt;saddr.byte4,sport,ih-&gt;daddr.byte1,ih-&gt;daddr.byte2,ih-&gt;daddr.byte3,ih-&gt;daddr.byte4,dport);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
if (ih-&gt;proto == 0) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("!!! Reserved 
!!!\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 1) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("ICMP\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
MessageBox(NULL,"ICMP-Packet(s) 
found!","WARNING",MB_OK);&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 2) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("IGMP\n");&nbsp;}<BR>&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 3) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("GGP\n");&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
MessageBox(NULL,"Gateway-to-Gateway-Packet(s) 
found!","WARNING",MB_OK);}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 4) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("IP\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
MessageBox(NULL,"IP-in-IP-Packet(s) 
found!","WARNING",MB_OK);&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 5) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("ST\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 6) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("TCP\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 7) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("UCL\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 8) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("EGP\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 9) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("IGP\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 10) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("BBN-RCC-MON\n");&nbsp;}<BR>&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 11) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("NVP-II\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 12) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("PUP\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 13) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("ARGUS\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 14) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("EMCON\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 15) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("XNET\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 16) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("!!! CHAOS 
!!!\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
MessageBox(NULL,"CHAOS-Packet(s) 
found!","WARNING",MB_OK);&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 17) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("UDP\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 18) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("MUX\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 19) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("DCN-MEAS\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 20) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("HMP\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 21) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("PRM\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 22) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("XNS-IDP\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 23) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("TRUNK-1\n");&nbsp;}<BR>&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 24) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("TRUNK-2\n");&nbsp;}<BR>&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 25) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("LEAF-1\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 26) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("LEAF-2\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 27) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("RDP\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 28) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("IRTP\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 29) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("ISO-TP4\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 30) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("NETBLT\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 31) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("MFE-NSP\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 32) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("MERIT-INP\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 33) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("SEP\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 34) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("3PC\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto == 35) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("IDPR\n");&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ih-&gt;proto &gt;= 36) 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("!!! UNKOWN 
!!!\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageBox(NULL,"UNKOWN 
Packetformat found!","WARNING",MB_OK);&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//printf(tcph-&gt;data);<BR>}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;if(res == -1){<BR>&nbsp;&nbsp;printf("Error reading the packets: 
%s\n", pcap_geterr(adhandle));<BR>&nbsp;&nbsp;return 
-1;<BR>&nbsp;}<BR>&nbsp;<BR>&nbsp;&nbsp; pcap_close(adhandle);&nbsp; 
<BR>&nbsp;&nbsp; return 0;<BR>}</DIV>
<DIV>&nbsp;</DIV>
<DIV><BR></FONT>&nbsp;</DIV></BODY></HTML>