从数据包中获取HTTP HOST Web地址

时间:2013-11-27 03:53:48

标签: c http network-programming packet

我有一个基本的数据包嗅探器,如http://www.binarytides.com/packet-sniffer-code-c-linux/

我已将其扩展为仅在端口80(HTTP)上处理数据包。我不知道如何从数据中获取主机网址。你们能帮助我吗

我要做的是解析HTTP标头子集以识别主机网址

我找到了类似于我需要的东西:https://github.com/joyent/http-parser/blob/master/http_parser.h#L194

但代码太复杂了......

或者我在哪里可以找到类似TCP http://en.wikipedia.org/wiki/Transmission_Control_Protocol#TCP_segment_structure

的HTTP标头字节分解

1 个答案:

答案 0 :(得分:0)

您需要获取tcp数据,然后查找“GET”。典型的http请求如下所示:

   GET www.foo.com HTTP/1.0

Web主机名就在GET请求之后。因此,您可以从那里提取Web主机地址。