2013-03-21 64 views
0

我使用sniffex.c作为我的出发点,并且我花了几个月的时间努力让数据包嗅探器以我想要的方式工作。这是一个很好的工具,用于提供网络中每台计算机的流量汇总概要,但是我发现自己希望获得有关入站流量来源的更多信息。如果我在样本入站数据包的src_ip上执行whois,大多数情况下我会收到Qwest Communications Company,LLC或AKAMAI TECHNOLOGIES INC拥有的主机的信息,这些主机并不真正向我提供我感兴趣的信息。数据包嗅探器 - 追溯到内容的起源地

在这一点上,我有兴趣跟踪数据来自哪里,如youtube或espn ......如何做到这一点?

反向dns查找听起来像我正在寻找的,但如果我采取src_ip,我收到了一个体面的数据块,并把它放在一个在线反向dns搜索表单,我所得到的是,它是由qwest拥有。

编辑#1:

OK,我现在有怎么问这个问题的一个更好的主意,这要归功于以下盖伊·哈里斯的回答。正如他所说,每个数据包中的ASCII数据应该有一个“主机:”行,这应该能够提供更直接的信息,说明这些数据的来源在更高层次上。现在我该如何获得这些数据?解析ascii文本是最好的方法,还是有现有的函数来获取这些数据?

编辑#2:

好,解析无论是有效载荷或头ASCII似乎是一个死胡同。我找到了非常有用的libpcap应用程序here的来源。该程序将以上所有内容打印到日志文件中。仔细查看这些数据,我发现很少数据包有“主机:”字段。显然只有TCP端口80的数据包,然后才是该系列中的第一个数据包。即使那样,我发现只有这个主机领域的人才能在我的网络上的一个盒子上由网络服务器提供服务。

因此,我现在要求完全不可能弄清楚许多不同网站的内容可能会缓存在单个主机上?

回答

0

奎斯特(谁被CenturyLink购买)是一个ISP(和CenturyLink仍然是)。例如,有些公司可能会将它们用作托管ISP,因此诸如对www.example.com的HTTP请求等请求实际上由Qwest的/ CenturyLink的服务器之一处理,所以如果您从www.example下载的话。您实际上是从Qwest/CenturyLink拥有的服务器下载的,其IP地址也属于Qwest/CenturyLink。

Akamai是一家为组织提供基础设施的公司,该组织希望为人们提供批次下载材料;该组织将arrange that the domain name for their server will actually resolve to an IP address for Akamai,所以如果你认为你从www.example.com下载,你实际上是从Akamai的一台服务器上下载的,其IP地址也属于Akamai。

因此,来自www.example.com的回复下载请求(例如HTTP GET请求)的入站数据包的源IP地址可能是属于Qwest或Akamai的主机的IP地址 - 那真的是真正开始流量的主机!

如果它属于Qwest,则Example Inc.的Web服务器实际上可能存储在Qwest IP地址的Qwest机器上,而不是Example Inc.所拥有的机器上。并使用Example Inc.所拥有的范围内的IP地址(Example Inc.可能比管理服务器和专用IP地址的范围更适合其资源)。

如果它属于Akamai的,它具有下载的材料,通过实例公司,谁与Akamai签约,提供内容缓存提供的副本。

关于您可以做的确定哪些材料实际上正在下载的内容,例如,请查看客户端为确定IP地址所做的DNS请求(以便您看到“www.example.com”在DNS请求中,而不是仅仅看到Qwest/Akamai /为DNS请求返回的任何IP地址)和/或至少对于HTTP而言,HTTP 1.1请求中的“主机:”头(其还将包含域名称)。

而且,在一般情况下,在下载过程中的某个任意点开始捕获的情况下,始终可以找出而不是,以便找出正在下载的内容的“原始”来源。

的Host:头只会出现在最初的HTTP请求,所以如果你没有在时间捕捉交通初始HTTP请求提出,或者如果下载的是不是一个HTTP请求的结果,你运气不好。

DNS请求将在下载开始之前完成 - 并且,由于DNS解析器可以缓存DNS请求的结果,所以在下载开始之前它可能已经花费了相当长的时间 - 因此,如果您不是“在获得DNS请求时捕获,你的运气不好。

+0

感谢您的回答。所以,如果你使用的是libpcap,并且你有一个数据包,那么从我有限的知识来看似乎不可能把这个数据包绑定到一个dns请求。我错了吗?标题看起来更有希望。你帮助我更好地制定了我的问题,我将编辑我的原始问题。 – nomadicME 2013-03-22 18:18:22

+0

DNS请求*是*一个数据包,就像一个DNS响应一样。如果您的网络捕获既包含对IP地址的DNS请求,也包含对该IP地址的HTTP请求,原则上,您或程序可以看到HTTP请求中的IP地址可能已被该地址DNS请求。 – 2013-03-23 22:42:18

+0

请参阅我的更新以回答您对问题的更新。实际上,一般问题是不可溶解的。 – 2013-03-23 22:50:34