Paquetes UDP en libpcap

Iniciado por piou, 2 Noviembre 2010, 15:45 PM

0 Miembros y 1 Visitante están viendo este tema.

piou

Estoy programando algo en libpcap, quiero hacer un programa que intercepte paquetes UDP en el puerto 53 (el del DNS), lo único que quiero saber es las páginas qu e se visitan, así que creo que es un método bueno y simple para hacerlo. El problema llega cuando después de interceptar el paquete quiero extraer tan solo la web. En realidad pido un algoritmo sencillo
Tengo lo siguiente:
Uso la función print_payload() con el paquete pongo el sniffer y me meto en www.google.com, los 4 primeros paquetes son así:
Packet number 1:
       From: x
         To: x
   Protocol: UDP
   * Invalid TCP header length: 0 bytes
   Src port: x
   Dst port: 53
   Payload (39 bytes):
...5.'...2......
.....www.google.
es.....

Packet number 2:
       From: x
         To: x
   Protocol: UDP
   * Invalid TCP header length: 0 bytes
   Src port: 53
   Dst port: x
   Payload (137 bytes):
.5.......2......
.....www.google.
es..............
....www.google.c
om..+......~a...
www.l./.K.......
..&.ns3./.dns-ad
min./...Z.......
........<

Packet number 3:
       From: x
         To: x
   Protocol: UDP
   * Invalid TCP header length: 0 bytes
   Src port: x
   Dst port: 53
   Payload (39 bytes):
...5.'*C........
.....www.google.
es.....

Packet number 4:
       From: x
         To: x
   Protocol: UDP
   * Invalid TCP header length: 0 bytes
   Src port: 53
   Dst port: x
   Payload (103 bytes):
    .5...g..........
    .....www.google.
    es..............
    ....www.google.c
   om..+......~_...
    www.l./.G.......
                           ...B.\h


Por cada vez que me meto en una web, intercepto más de 50 paquetes por ese puerto.

¿Por qué? Mi primera pregunta.

La segunda es cómo puedo a partir de todos los paquetes son su información (payloads) elaborar una lista de las webs visitadas.

NOTA: Antes de cada información hay código hexadecimal que he quitado ya que supongo será la misma información pero en hexadecimal.