【问题标题】:get HTTP HOST web address from packet从数据包中获取 HTTP HOST 网址
【发布时间】:2013-12-12 13:39:29
【问题描述】:

我有一个基本的数据包嗅探器,例如 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 标头按字节细分

【问题讨论】:

标签: c http network-programming packet


【解决方案1】:

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

   GET www.foo.com HTTP/1.0

web 主机名只是跟随 GET 请求。所以你可以从那里提取网络主机地址。

【讨论】:

  • 查找 GET 是什么意思。我要做的是解析 HTTP 标头子集并识别主机网址
  • 要提取网络主机地址,您不需要解析完整的HTTP头,这就是我说的原因,只需寻找GET。要全面了解它,请使用 wireshark 提取一个 http 数据包并查看它。但是,是的,如果您打算解析整个 http 数据包,请查看 HTTP 的 RFC,而不要只查找 GET。
  • 是的,但我需要这样做,因为它是我任务的一部分 :)
猜你喜欢
  • 1970-01-01
  • 2012-02-27
  • 2014-09-20
  • 2015-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-28
  • 2019-11-01
相关资源
最近更新 更多