我们如何扫描整个互联网以及我们学到了什么

您每天使用几个网站? 几个社交网络,一个搜索引擎,几个喜欢的发布者,大约有5种工作服务。 也许,不太可能输入超过20个站点。



您是否想过Internet上有多少个站点以及它们发生了什么?

文章定期根据不同的前1M网站样本进行研究。 但是我一直在想,是否有可能在不基于很小样本的情况下进行分析就可以遍历所有Internet域。

我是一年多以前第一次问这个问题的。 我们开始为网站开发爬虫,需要对其进行大量测试。 以爬虫为核心,我第一次遍历Runet域-它有550万个域,之后是所有2.13亿个域(在2017年秋季)。

在过去的时间里,在开发上投入了大量的精力和金钱,算法变得更好,我决定返回到Internet分析并收集更多数据。

收集信息的目的是获得主要是工作主机,重定向,服务器标头和x-by-by的可靠样本。

收集方式


应用程序本身使用Go编写,使用其自己的实现与dns和http客户端一起使用。 作为redis队列,db是mysql。

最初,只有一个空白域,例如example.com。 分析包括以下几个阶段:

  1. 检查http://example.com, http://www.example.com, https://example.com, https://www.example.com的可用性
  2. 如果至少有一个选项成功连接,则:
    -分析/robots.txt
    -检查/sitemap.xml是否存在

每天大约有10万个域出现和删除。 显然,几乎无法即时投射网络状态,但是您需要尽快执行此操作。

我们部署了额外的搜寻器服务器集群,这使我们能够实现平均每秒2000 个域的速度 。 因此,对2.52亿个域的验证大约花了一天半的时间

抒情离题
与爬网同时,开发了“ 1001应对滥用行为的方法”技能。 这仅仅是或多或少的大型分析的祸害。 修改该算法值得付出很大的努力,以使其在短期内不会落在同一ip上,或者不会多次敲入https。

资料


网络分析中最重要的数字是“活动”域的数量。 我们将IP解析为“活动的”域,并且至少www /没有www_ http / https的版本之一提供了任何响应代码。



当然,您不能忘记代码418-假人:2227件。

总共发现了1320万个ip地址 。 值得注意的是,对于某些域,一次给出多个IP地址,对于其他域,一次仅给出一个,但是每次都不同。
因此, 医院平均温度平均在一个IP上位于16个站点。

状态码显示的图片如下:



该数量大于域总数,因为 每个主机可以提供4种不同的状态代码(组合www / non www,http / https)

Https


向https过渡是近年来的趋势。 搜索引擎正在积极促进安全协议的实施,而Google Chrome浏览器将很快开始将http网站标记为不安全。



因此,https上的工作站点所占份额达到了http上工作站点总数73%

最大的过渡问题是几乎不可避免的流量下降,因为 对于搜索引擎http / https,即使在同一域中,在技术上也不同。 新项目通常在https上立即启动。

www还是没有www?


www子域与Internet本身一起出现,但是即使到现在,有些人仍然不接受没有www的地址。

同时, 不带www的版本的200个响应代码给出1.186亿个 。 域名,以及www-1.191亿个域名

在430万个域中,ip不与没有www的版本绑定,即 您不会转到example.com 。 300万个域未将ip绑定到www子域。

重要的一点是版本之间存在重定向。 因为 如果在两种情况下都给出200个代码,则对于搜索引擎而言,这是两个内容重复的不同网站。 我想提醒您,不要忘记配置正确的重定向。
使用www->不带www 3200万不带www-> www 3800万重定向

从这些数字来看,我很难说谁赢了-www或没有www。

重新导向


在seo圈子中,有一种观点认为,网站推广的最有效方法是发布来自附近主题网站的重定向。

3580万个域将重定向到其他主机 ,如果我们按目的将它们分组,我们将看到领导者:



传统上,顶部是域名注册商和停车场。

如果您在顶部看到少于10,000个传入重定向,则可以看到许多熟悉的网站,例如booking.com。

在最多1000个的充值中,有赌场和其他娱乐场所。

服务器头


终于到了有趣的部分!

1.86亿个域给出的标题标题不为空 。 这是所有生存域的87%,这是一个相当可靠的示例。

如果仅按值分组,我们将获得:



领导者是20台服务器,总共有96%:



世界领先者是Apache,在Nginx赢得了银牌,并终结了IIS的三位一体。 总共,这三台服务器托管全球87%的Internet。

保守国家:



值得注意的是,在Runet中,情况有所不同:



在这里Nginx是绝对的领导者,Apache的份额要少三倍。

您还喜欢Nginx的什么地方:



其余服务器的分布情况如下:



X-Powered-by


X-Powered-By标头只有5730万台主机 ,大约占活动域的27%。

原始领导者:



如果您处理数据并丢弃垃圾-那么php wins:



PHP版本:



就我个人而言,我对5.6如此受欢迎感到有些惊讶,与此同时,它的总数中所占的比重不断增长,这让我感到高兴。

Runet中还有一个站点说它可以在php / 1.0上运行,但是这个数字的准确性值得怀疑。

饼干




结论


我只显示了所发现信息的一小部分。 挖掘这些数据就像挖掘一堆垃圾以便找到有趣的工件。

阻止搜索引擎机器人和分析服务(ahref,majestic等)的主题仍未公开。 在此示例中,无论您如何尝试隐藏足迹,都有许多不同的卫星网络,但是在数千个域中您都可以看到模式。

在不久的将来,要收集更多的数据,尤其是有关链接,文字,广告系统,分析代码等的数据。

我很高兴听到您的评论。

Source: https://habr.com/ru/post/zh-CN413739/


All Articles