Pregunta

Tarjetas,

cómo es posible determinar a partir de los paquetes capturados usando sharppcap si el paquete es http paquete o no?

y podemos determinar los paquetes TCP frpm si el paquete es HTTP o no?

¿Fue útil?

Solución

De acuerdo con RFC2616 - Protocolo de Transferencia de Hipertexto - HTTP / 1.1 :

  

La versión de un mensaje HTTP se indica por un campo HTTP-Version en la primera línea del mensaje

Por lo tanto, se podría inspeccionar paquetes y exploración para el texto de la versión de HTTP en encabezados de los mensajes, y / o en otros campos conocidos del protocolo HTTP. Aunque este método puede no ser fiable al 100% si un mensaje se divide en varios paquetes, probablemente sería lo suficientemente bueno, al menos como un primer corte.

Otros consejos

Soy el autor / mantenedor de sharppcap/packet.net.

Tengo un par de clases que realizan tcp reensamblaje y análisis http que están en uso en una red compleja seguimiento de aplicación para identificar y seguir http sessions. Estos son totalmente probado unidad y bien comentado.

Están disponibles para la concesión de licencias, ya sea en el nivel binario o fuente.

Edit: ¿Por qué votar esto abajo? Tomó cientos de horas para desarrollar el código y pruebas y es una gota en la solución que se ha reutilizado. Es sin duda vale la pena considerar antes de volver a implementar la misma funcionalidad.

Parece que usted está buscando en un fragmento TCP única. Si eso vino desde el comienzo de un mensaje, tendrá una versión de HTTP en la primera línea, pero si usted está tirando de paquetes al azar fuera de la red y con la esperanza de ser capaz de decir que están HTTP que están fuera de suerte - no hay nada en los fragmentos TCP que indica lo que hay en ellos. La única manera de saber sería buscar en toda la conversación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top