首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写http嗅探器

问编写http嗅探器
EN

Stack Overflow用户
提问于 2010-01-16 00:38:11
回答 6查看 4.1K关注 0票数 2

我想写一个程序,通过数据包捕获来提取系统访问的网站的URL( IP地址)。我认为这个URL会出现在数据部分(即不在任何报头中-以太网/ ip / tcp-udp )..(这样的程序有时被称为http嗅探器,我不应该使用任何可用的工具)。作为一个初学者,我刚刚经历了一个基本的嗅探器程序:sniffex.c。有人能告诉我我应该往哪个方向走吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-01-16 01:08:35

注意:在下面的信息中,假设GET还包括POST和其他HTTP方法。

这肯定要比查看一个数据包多得多的工作,但如果您捕获整个流,您应该能够从发出的HTTP标头中获取它。

尝试查看Host标头(如果已提供),以及GET实际请求的内容。GET可以是完整的URL,也可以只是服务器上的一个文件名。

还要注意,这与从IP地址获取域名无关。如果你想要域名,你必须挖掘数据。

在我的机器上,Wireshark提供了一个简单的例子:

代码语言:javascript
复制
GET http://www.google.ca HTTP/1.1
Host: www.google.ca
{other headers follow}

另一个例子,不是来自浏览器,GET中只有一个路径:

代码语言:javascript
复制
GET /ccnet/XmlStatusReport.aspx HTTP/1.1
Host: example.com

在第二个示例中,实际的URL是http://example.com/ccnet/XmlStatusReport.aspx

票数 4
EN

Stack Overflow用户

发布于 2010-01-16 00:40:22

不,没有足够的信息。单个IP可以对应于任意数量的域名,并且这些域名中的每一个都可以具有无限数量的URL。

但是,看看gethostbyaddr(3),看看如何在ip上执行反向dns查找,以便至少获得该ip的规范名称。

更新:由于您已经编辑了问题,@aehiilrs有一个much better answer。

票数 4
EN

Stack Overflow用户

发布于 2010-01-16 00:40:42

您可能需要反向DNS查找。为此调用gethostbyaddr。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2073183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档