URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 237
[ Назад ]

Исходное сообщение
"ip packets from raw sockets (linux) почему не пашет ?"

Отправлено Teplov , 29-Окт-01 21:53 
Привет!
решил написать программку которая будет ловить Ip
пакеты используя RAW сокеты. почитал доки маны форумы , и написал , но почему-то не пашет - функция  recivfrom не возвращает ничего, так и висим. текст:

#include<stdlib.h>
#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<netinet/in_systm.h>
#include<netinet/ip.h>
#include<netinet/ip_icmp.h>
#include<strings.h>
#include<unistd.h>


int main(int argc,char *argv[])
{

  int sockd,r;
  struct sockaddr_in mysocket;
  struct sockaddr from;
  char msg[2048];
  socklen_t fl;

  if((sockd = socket(AF_INET,SOCK_RAW, IPPROTO_RAW)) < 0)  
  {
    perror("socket");
    exit(-1);
  }

  bzero(&from,sizeof (from));
  fl=sizeof (from);
  
  while ( 1)
  {
  int i;
  
  recvfrom(sockd,msg,32,0x0,&from,&fl); // !ВСЕ!

  printf("%s\n",from.sa_data);
   for (i=0;i<fl;i++)  printf("%X ",msg[i]);
  printf ("\n");
  }
  
return 0;
}

где грабли ?


Содержание

Сообщения в этом обсуждении
"И тишина....жаль...;("
Отправлено Teplov , 02-Ноя-01 22:06 
тут маном не обойтись ;)