Pergunta

Saudações,

Como é possível determinar a partir de pacotes capturados usando o sharppcap se o pacote for pacote http ou não?

E podemos determinar os pacotes FRPM TCP se o pacote for http ou não?

Foi útil?

Solução

De acordo com RFC2616 - Protocolo de transferência de hipertexto - HTTP/1.1:

A versão de uma mensagem HTTP é indicada por um campo de versão http na primeira linha da mensagem

Portanto, você pode inspecionar pacotes e digitalizar o texto da versão HTTP nos cabeçalhos de mensagens e/ou outros campos conhecidos do protocolo HTTP. Embora esse método possa não ser 100% preciso se uma mensagem for dividida em vários pacotes, provavelmente seria bom o suficiente, pelo menos como primeiro corte.

Outras dicas

Eu sou o autor/mantenedor de sharppcap/packet.net.

Eu tenho algumas aulas que executam tcp remontagem e http Analisar que estão em uso em um aplicativo de monitoramento de rede complexo para identificar e seguir http sessions. Estes são totalmente testados e bem comentados.

Eles estão disponíveis para licenciamento no nível binário ou de fonte.

EDIT: Por que votar isso? Demorou centenas de horas para desenvolver o código e os testes e é uma queda na solução que foi reutilizada. Certamente vale a pena considerar antes de reimplementar a mesma funcionalidade.

Parece que você está olhando para um único fragmento TCP. Se isso veio do início de uma mensagem, ele terá uma versão HTTP na primeira linha, mas se você estiver apenas puxando pacotes aleatórios da rede e esperando poder dizer que eles estão sem sorte - Não há nada nos fragmentos TCP que indique o que está neles. A única maneira de saber seria olhar para toda a conversa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top