With a SOCK_RAW, you can only read ICMP, IGMP and any transport layer
that the kernel doesn't recognize.  You won't be able to get TCP or UDP
packets.  Use either SOCK_PACKET or libpcap.

Tuan

On Fri, 7 Apr 2000, rajput g v be comp 56 wrote:

> 
> i have tried to listen to the raw packets by using the following program 
> .on running it just keeps on waiting  for any packet to come even when
> there is traffic .
> i am running the program as a root.
>  
> the program:
> ---------------------------------------------------------------------------------
> include<sys/types.h>
> #include<sys/socket.h>
> #include<net/if_packet.h>
> #include<linux/if_ether.h>
> #include<netinet/in.h>
> #include<unistd.h>
> #include<stdlib.h>
> #include<stdio.h>
> main()
> {
>   int addlen;
>   struct datagram {
>   struct iphdr *ip;
>   char data[100];
>   };
>   struct datagram ipdgram;
>   int cont,create_socket,new_socket,addrlen;
>    int bufsize = 1024;
>    char *buffer = malloc(bufsize);
> 
>    struct sockaddr_in address;
>    printf("\x1B[2J");//clear screen
>    if ((create_socket = socket(PF_PACKET,SOCK_RAW,ETH_P_ALL)) > 0)
>      printf("The socket was created\n");
>    while(1)
>    {
>    read(create_socket,(struct datagram*)&ipdgram,sizeof(ipdgram));
>    //printf("%s",ipdgram.data);
>    }
>    printf("%s",ipdgram.data);
>    close(create_socket);
> }
> 
> ---------------------------------------------------------------------------------
> on running ::
> ---------------------------------------------------------------------------------
> 
> the socket is created
> 
> 
> 
> 
> ---------------------------------------------------------------------------------
> and like this it keeps on waiting
> 
>  
> 
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-net" in
> the body of a message to [EMAIL PROTECTED]
> 


-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to [EMAIL PROTECTED]

Reply via email to