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

#!/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,很好


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值