作者:Federer2012_554 | 来源:互联网 | 2023-01-22 16:55
利用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服务器程序,看看那个用得最多。