热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python3利用socket查看各大网站所用的WEB服务器程序,看看那个用得最多。

利用python发送haeder然后,读取返回的头的信息,看看该网站用的是什么WEB服务器程序。今天早上看到别人用java写了一个这样的程序,我用就python也现实一个,本来想把

利用python发送haeder /然后,读取返回的头的信息,看看该网站用的是什么WEB服务器程序。

今天早上看到别人用java写了一个这样的程序,我用就python也现实一个, 本来想把nginx不用版本的算在一起,想想没得必要。结果查看了一下,还是nginx的多,其次是apache,然后是IIS了,Tengine这个也比较多哈,应该可以算成nginx的哈。当然,也有许多公司用的自己写的如百度的BWS,google的GWS。还有CWS和QWS等。

#!/bin/python
import socket

#以字典整式来统计各个服务器的数量
countdict = {"error":0}
#请求内容
request = ‘‘‘HEAD / HTTP/1.1
Accept: */*
Host: %(sip)s
Connection: Keep-Alive

‘‘‘
#print(countdict)
print("{0:*^6}".format("HOST"), "{0:*^26}".format("WEB SITE"), "{0:*^6}".format("SERVER:"), "{0:*^26}".format("Server Name"))
print("-----------------------------------------------------------------")
fp = open(‘serverlist.txt‘, ‘r‘)
for serverip in fp:
    serverip = serverip.strip()
    #print(request % dict(sip = serverip) )
    #针对不同网站替换点请求的Host字段
    tt = request % dict(sip = serverip)
    #print(tt)
    #请求header
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect((serverip, 80))
        s.send( tt.encode() )
        recv = s.recv(1024)
        recv = recv.decode()
        #print(recv.decode())
    except TimeoutError as te:
        print("HOST: ", serverip, "    报连接超时错误")
        countdict["error"] =+ 1
        print("-----------------------------------------------------------------")
        continue
    except Exception as e:
        print("HOST: ", serverip, "    报未知错误")
        countdict["error"] =+ 1
        print("-----------------------------------------------------------------")
        continue
    #print(recv)
    recvlist = recv.split(‘\r\n‘)
    for a in recvlist:
        #if ‘Server:‘ in a and a.startswith(‘Server:‘):
        if a.startswith(‘Server:‘):
            servername = a.split(‘:‘)[1]

    #统计应用的服务器名了
    if servername in countdict:
        countdict[servername] += 1
    else:
        countdict[servername] = 1

    #格式化打印
    #print("HOST: ", serverip, "Server: ", servername)
    print("{0: <6}".format("HOST: "), "{0: <26}".format(serverip), "{0: <6}".format("Server:"), "{0: <26}".format(servername))
    print("-----------------------------------------------------------------")

#打印统计结果
print(countdict)
这个是serverlist.txt里只有几个网站时的。

技术分享

这个是添加了许多网站后的。

技术分享 技术分享

python3利用socket查看各大网站所用的WEB服务器程序,看看那个用得最多。


推荐阅读
  • 构建LNMP架构平台
    LNMP架构的组成:Linux、Nginx、MySQL、PHP关于NginxNginx与apache的作用一样,都是为了搭建网站服务器,由俄罗斯人lgorsysoev开发,其特点是 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • nginx+多个tomcat
    学习nginx的时候遇到的问题:nginx怎么部署两台tomcat?upstream在网上找的资源,我在nginx配置文件(nginx.conf)中添加了两个server。结果只显 ... [详细]
  • 【爬虫】关于企业信用信息公示系统加速乐最新反爬虫机制
    ( ̄▽ ̄)~又得半夜修仙了,作为一个爬虫小白,花了3天时间写好的程序,才跑了一个月目标网站就更新了,是有点悲催,还是要只有一天的时间重构。升级后网站的层次结构并没有太多变化,表面上 ... [详细]
  • 1、etcnginxconf.ddefault.conf,添加如下信息:location{try_files$uri$urirouter;rootho ... [详细]
  • 我是做产品的,自己平时也做点技术,不过在职业技术人员面前都是不值一提的东西,为了方便以后查阅,索性用DZ搭了个论坛,把网上的一些教程,自己重新编辑后,存在了论坛上。积累技术经验之余,也发现了不 ... [详细]
  • 耳返概述:耳返主要实现监听的功能,在低延时的情况下可以给主播一个比较真实音频的反馈,在演唱会等专业场景里比较常用。技术实现上来说就是要时时的把录制进的音频数据立刻播放出去,当然这个 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • 有意向可以发简历到邮箱内推.简历直达组内Leader.能做同事的话,内推奖励全给你. ... [详细]
  • html和js代码互转,html转html5
    本文目录一览:1、html网页跳转javascript代码实现 ... [详细]
  • 本文主要介绍关于linux文件描述符设置,centos7设置文件句柄数,centos7查看进程数的知识点,对【Linux之进程数和句柄数】和【linux句柄数含义】有兴趣的朋友可以看下由【东城绝神】投 ... [详细]
  • nginx 反向代理proxy参数讲解
    ![](http:i2.51cto.comimagesblog20180805c32a728954d93ee2a4e4fb59c150a15b.png?x-oss-processi ... [详细]
  • LVS-DR直接路由实现负载均衡示例
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
author-avatar
Federer2012_554
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有