#!/usr/bin/python
import sys,time
from socket import *
if len(sys.argv)!= 4: #Test les argument ..
print '\nUSAGE :<ip> <port> <fichier>'
sys.exit(0)
def read_all(s): #lit toute la requette
tmp=''
read=''
i=1
while i:
try:
tmp=s.recv(1024)
if len(tmp) ==0:
break
else:
read+=tmp
except:
break
if len(read) ==0:
return 1
else:
return read
def read_header(h): #Lit l'header
tmp=''
for i in xrange(len(h)):
if h[i] == '\r' and h[i+1]=='\n' and h[i+2] =='\r' and h[i+3]=='\n': #Fin de l'header
break #on arrete la boucle
else:
tmp+=h[i]
return tmp #return l'header
def read_code(h): #lit tou ce qui ce trouve après l'header http
tmp=''
i=len(read_header(h))+4 #la taille de l'header sans les \r\n\r\n
while (i<len(h)): #boucle de la fin de l'header a taille de la requette
tmp+=h[i]
i+=1
return tmp #return le reste
#DEF VARIABLE ..
ip = sys.argv[1]
port = int(sys.argv[2])
fichier=sys.argv[3]
SOCKET_TIMEOUT=1;
#print '<ip>=%s'%ip
#print '<port>=%s'%port
#print '<fichier>=%s\n'%fichier
try:
s = socket(AF_INET, SOCK_STREAM) # Cree les socket ...
s.settimeout(SOCKET_TIMEOUT)
except:
print 'Erreur creating socket ...'
sys.exit(0)
try:
s.connect((ip,port)) # Connection ..
except:
print 'Erreur connecting ...'
sys.exit(0)
#Envoye des donne ...
send='GET %s HTTP/1.1\r\nHost: %s\r\n\r\n'%(fichier,ip)
s.send(send)
read=read_all(s)
if read != 1:
#print '%s'%(read_header(read)) #Affiche l'header http
print '%s'%(read_code(read)) #Affiche code html ou autre .. après l'header http
else:
print 'Erreur lecture ..'
s.close()