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