您的位置:首页 > 编程语言 > Python开发

python实现一个web服务器识别工具

2012-03-08 22:24 766 查看
#!/usr/bin/env python

#-*- coding:utf-8 -*-

import socket, sys

host = sys.argv[1]

textport = sys.argv[2]

filename = sys.argv[3]

try:

       s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

except socket.error,e:

       print "Strange error creating socket %s " % e

       sys.exit(1)

try:

       port = int(textport)

except ValueError:

       try:

               port = socket.getservbyname(textport,'tcp')

       except socket.error, e:

               print "Coundn't find your port :%s " % e

               sys.exit(2)

try:

       s.connect((host,port))

except socket.gaierror,e:

       print "Address-related error connecting to server %s " % e

       sys.exit(1)

except socket.error, e:

       print "Connection error: %s " % e

       sys.exit(1)

try:

       s.sendall("GET %s HTTP/1.1\r\n\r\n" % filename) #请求网页

except socket.error, e:

       print "Error sending data : %s " % e

       sys.exit(1)

while 1:

       try:

               buf=s.recv(2048)

       except socket.error, e:

               print "Error receiving data: %s " % e

               sys.exit(1)

       if not len(buf):

               break

       sys.stdout.write(buf)

运行如下:

ly@ubuntu:~/Desktop$ python sock.py www.baidu.com 80/index.html

HTTP/1.1 200 OK

Date: Mon, 20 Feb 2012 13:19:48 GMT

Server: BWS/1.0

Content-Length: 7701

Content-Type: text/html;charset=gbk

Cache-Control: private

Expires: Mon, 20 Feb 2012 13:19:48 GMT

Set-Cookie: BAIDUID=431865326B247D48E9101C1F6B2A6D05:FG=1;expires=Mon, 20-Feb-42 13:19:48 GMT; path=/;domain=.baidu.com

P3P: CP=" OTI DSP COR IVA OUR IND COM "

Server: BWS/1.0这个是什么...不知道...

再试试别的:

ly@ubuntu:~/Desktop$ python sock.py www.chinaunix.net 80/index.html >a

HTTP/1.1 301 Moved Permanently

Server: nginx/1.0.6

Date: Mon, 20 Feb 2012 13:35:46 GMT

Content-Type: text/html

Connection: close
Server: nginx/1.0.6

其实得不到200 ok也能看出使用的web server,很好
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息