nto: Escuchar el puerto ethernet

Ver el tema anterior Ver el tema siguiente Ir abajo

nto: Escuchar el puerto ethernet

Mensaje por tipitipi el Jue Feb 24, 2011 2:50 am

Hola a todos:

Estoy intentando hacer algo que no se si es posible.

Quiero desarrollar un pequeño programilla en C para poder escuchar el puerto ethernet.

El objetivo es realizar un contador de pulsos.

Actualmente tengo realizada esta operación para el puerto serie pero voy a migrar la aplicacion a un equipo que solamente tiene puerto eternet y USB.

Por cierto, por el puerto USB tambien me serviría.

Gracias por la ayuda


Saludos Cordiales

tipitipi
Cimarron
Cimarron

Mensajes : 3
Fecha de inscripción : 23/02/2011

Volver arriba Ir abajo

Re: nto: Escuchar el puerto ethernet

Mensaje por GoOrK el Jue Feb 24, 2011 10:32 pm

HOla y benvenida(o) al foro.

Bueno parto del supuesto de que ya tienes un tiempo programando en c, ya que tu pregunta hace referencia a controlar dispositivos pci, usb, cualquier tipo. Esto involucra librerias las cuales nos den acceso a los drivers para poder controlar.

Para no hacer mas largo el choro, te digo es no es facil pero no imposible.

Pido algo de paciencia para recibir el codigo, dame un tiempito.

_________________
avatar
GoOrK
Admin
Admin

Mensajes : 53
Fecha de inscripción : 18/02/2011
Edad : 24

http://goorkuabcinc.activo.ws

Volver arriba Ir abajo

Re: nto: Escuchar el puerto ethernet

Mensaje por tipitipi el Vie Feb 25, 2011 3:28 am

OK.

Muchas Gracias por la respuesta.

Hablamos

tipitipi
Cimarron
Cimarron

Mensajes : 3
Fecha de inscripción : 23/02/2011

Volver arriba Ir abajo

Re: nto: Escuchar el puerto ethernet

Mensaje por GoOrK el Lun Feb 28, 2011 7:08 pm

Bueno, lamento la tardanza en esta repsuesta, pero te explico, para lograr este tipo de monitoreo (hablando de una red, ethernet, wirelless,) se ocupan ciertas librerias, para windows me parece necesitamos tener instalado wincap. Solamente hay que buscar la libreria (libpcap) para c en windows.
Para hacerlo tendrás que hacerlo "mirando dentro" de los paquetes a nivel de enlace, esto se hace con sockets crudos: raw-sockets que serian libpcap o winpcap.

En linux es de la siguiente forma con la libreria libpcap.
Código:
#include <pcap.h>
    #include <stdio.h>

    int main(int argc, char *argv[])
    {
      pcap_t *handle;         /* Session handle */
      char *dev;         /* The device to sniff on */
      char errbuf[PCAP_ERRBUF_SIZE];   /* Error string */
      struct bpf_program fp;      /* The compiled filter */
      char filter_exp[] = "port 23";   /* The filter expression */
      bpf_u_int32 mask;      /* Our netmask */
      bpf_u_int32 net;      /* Our IP */
      struct pcap_pkthdr header;   /* The header that pcap gives us */
      const u_char *packet;      /* The actual packet */

      /* Define the device */
      dev = pcap_lookupdev(errbuf);
      if (dev == NULL) {
         fprintf(stderr, "Couldn't find default device: %s\n", errbuf);
         return(2);
      }
      /* Find the properties for the device */
      if (pcap_lookupnet(dev, &net, &mask, errbuf) == -1) {
         fprintf(stderr, "Couldn't get netmask for device %s: %s\n", dev, errbuf);
         net = 0;
         mask = 0;
      }
      /* Open the session in promiscuous mode */
      handle = pcap_open_live(dev, BUFSIZ, 1, 1000, errbuf);
      if (handle == NULL) {
         fprintf(stderr, "Couldn't open device %s: %s\n", somedev, errbuf);
         return(2);
      }
      /* Compile and apply the filter */
      if (pcap_compile(handle, &fp, filter_exp, 0, net) == -1) {
         fprintf(stderr, "Couldn't parse filter %s: %s\n", filter_exp, pcap_geterr(handle));
         return(2);
      }
      if (pcap_setfilter(handle, &fp) == -1) {
         fprintf(stderr, "Couldn't install filter %s: %s\n", filter_exp, pcap_geterr(handle));
         return(2);
      }
      /* Grab a packet */
      packet = pcap_next(handle, &header);
      /* Print its length */
      printf("Jacked a packet with length of [%d]\n", header.len);
      /* And close the session */
      pcap_close(handle);
      return(0);
    }


Te dejo un manual algo extenso http://www.e-ghost.deusto.es/docs/2005/conferencias/pcap.pdf, puesto que habia mencionado el grado de dificultad que tiene llevar a cabo este asunto.Descargar Wincap
avatar
GoOrK
Admin
Admin

Mensajes : 53
Fecha de inscripción : 18/02/2011
Edad : 24

http://goorkuabcinc.activo.ws

Volver arriba Ir abajo

Re: nto: Escuchar el puerto ethernet

Mensaje por tipitipi el Mar Mar 01, 2011 2:10 am

OK !!!

Muchas Gracias

Lo probaré y ya te diré algo.

Saludos Cordiales

tipitipi
Cimarron
Cimarron

Mensajes : 3
Fecha de inscripción : 23/02/2011

Volver arriba Ir abajo

Re: nto: Escuchar el puerto ethernet

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.