begin process at 2012 02 05 00:41:40
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseau & internet

 > SERVEUR HTTP PYTHON

SERVEUR HTTP PYTHON


 Information sur la source

Note :
9 / 10 - par 2 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseau & internet Classé sous :http, serveur, simple, bien, parfait Niveau :Initié Date de création :14/04/2007 Date de mise à jour :25/10/2009 16:36:29 Vu / téléchargé :5 019 / 248

Auteur : xeolin

Ecrire un message privé
Site perso
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Je me suis amusé, à creer un semblant de serveur "http".

Le programme ouvre le port 80,
il attent que le WebBroswer utilise ce port,
il recupère le message du naviguateur,
il bidouille un peu avec,
réussit à en sortir seulement l'url,
envoit au naviguateur le contenu de la page qui a été au préalable placée dans sa racine.

bon voici le script : (commenté, c'est rare pour moi)

Source

  • import socket, sys, threading,time,os
  • DIR=os.getcwd() # ici on prend la localisation du prog
  • PAGE_ERROR="""<br>ERREUR !!!!
  • <br>rien ne va plus !
  • <br>je sais pas ou cela mene !!!
  • """ # ceci est la page affichee en cas d'erreur
  • HOST = "0.0.0.0"# adresse ip de VOTRE ordinateur dans VOTRE reseau local
  • PORT = 80 # port 80 qui correspond au http (attention a ce que le port ne sois pas deja utilise
  • class ThreadClient(threading.Thread):
  • """derivation d"un objet thread pour gerer la connexion avec un client"""
  • def __init__(self, conn):
  • threading.Thread.__init__(self)
  • self.connexion = conn
  • def run(self):
  • #cette partie peut paraitre compliquee, c'est parceque j'ai fait comme j'ai pu
  • msgClient = self.connexion.recv(1024) # on prend la requette du webbroswer
  • print time.asctime()+' : le client se connecte dans la page :'
  • print time.asctime()+' : '+msgClient.split('\n')[0][4:-10] #une petite page d'info
  • fi=msgClient.split('\n')[0][4:-10]
  • if fi=='/': fi='/index.html' #transforme <<http://mapage/>> en <<http://mapage/index.html>>
  • try :
  • os.chdir(DIR+'/'.join(msgClient.split('\n')[0][4:-10].split('/')[:-1]))
  • y=open(msgClient.split('\n')[0][4:-10].split('/')[-1],'r') #en brefici on va chercher dans la racine du fichier en .py les page html
  • msg=y.read()
  • y.close()
  • except:
  • msg=PAGE_ERROR # si on ne les trouves pas on envoit une erreur
  • self.connexion.send(msg) # on envoit la page web
  • self.connexion.close()
  • mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  • try:
  • mySocket.bind((HOST, PORT))# on initialise
  • except socket.error:
  • print time.asctime()+" : La liaison du socket a l'adresse choisie a echoue." # si erreur ici, verifiez l'IP et le port 80
  • sys.exit()
  • print time.asctime()+" : Serveur pret, en attente de requetes ..."
  • mySocket.listen(5)
  • while 1:
  • try :
  • connexion, adresse = mySocket.accept()#a chaque fois que quelqu'un se connect on l'accepte
  • th = ThreadClient(connexion)#et on initialie le Thread
  • th.start()
  • except :
  • print time.asctime()+" : ERREUR" #au cas ou
import socket, sys, threading,time,os

DIR=os.getcwd()             # ici on prend la localisation du prog
PAGE_ERROR="""<br>ERREUR !!!!
<br>rien ne va plus !
<br>je sais pas ou cela mene !!!
"""                         # ceci est la page affichee en cas d'erreur

HOST = "0.0.0.0"# adresse ip de VOTRE ordinateur dans VOTRE reseau local
PORT = 80       # port 80 qui correspond au http (attention a ce que le port ne sois pas deja utilise

class ThreadClient(threading.Thread):
    """derivation d"un objet thread pour gerer la connexion avec un client"""
    def __init__(self, conn):
        threading.Thread.__init__(self)
        self.connexion = conn
    def run(self):
                                                        #cette partie peut paraitre compliquee, c'est parceque j'ai fait comme j'ai pu
        msgClient = self.connexion.recv(1024)           # on prend la requette du webbroswer
        print time.asctime()+' : le client se connecte dans la page :'          
        print time.asctime()+' : '+msgClient.split('\n')[0][4:-10]      #une petite page d'info
        fi=msgClient.split('\n')[0][4:-10]
        if fi=='/': fi='/index.html' #transforme <<http://mapage/>> en <<http://mapage/index.html>>
        try :
                os.chdir(DIR+'/'.join(msgClient.split('\n')[0][4:-10].split('/')[:-1]))
                y=open(msgClient.split('\n')[0][4:-10].split('/')[-1],'r')                  #en brefici on va chercher dans la racine du fichier en .py les page html
                msg=y.read()
                y.close()
        except:
                msg=PAGE_ERROR # si on ne les trouves pas on envoit une erreur
        self.connexion.send(msg)    # on envoit la page web
        self.connexion.close()



        
mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
    mySocket.bind((HOST, PORT))# on initialise
except socket.error:
    print time.asctime()+" : La liaison du socket a l'adresse choisie a echoue." # si erreur ici, verifiez l'IP et le port 80
    sys.exit()
print time.asctime()+" : Serveur pret, en attente de requetes ..."
mySocket.listen(5)

while 1:
    try :
        connexion, adresse = mySocket.accept()#a chaque fois que quelqu'un se connect on l'accepte

        th = ThreadClient(connexion)#et on initialie le Thread
        th.start()
except :
        print time.asctime()+" : ERREUR" #au cas ou

 Conclusion

J'ai créé ceci car aprés avoir hacké six fois le réseau du FBI, trois le Pynthagone, avoir volé et revendu plusieurs codes de lancement de missiles à tête nucléaire, huit fois la CIA, une fois le NCIS et autre bricolles, je me suis dit : "aller pour me rellaxer j'me fait un ptit script.

c'est de l'humour (j'espère que vous aviez tous compris, pasque trois fois à cause de ca j'ai eut le GIGN sur le dos)

ATTENTION : c pas sécurisé du tout.
ATTENTION : seulement en Local

dans le zip il y a mon site web (oc.fb.bz) pour vous faire assayer ce programe parfaitement parfait sur mon site infiniment suppérieur a tout les autres. (oubliez pas de changer l'adresse IP !)

sinon juste comme ca, un trophé par définition ca ne me revient pas?

bon j'arrête de déconner et j'attent vos propositions pour amiliorer ce projet !

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

25 octobre 2009 16:36:39 :
self.

 Sources du même auteur

THE GAME OF LIFE, AVEC IMPLÉMENTATION GRAPHIQUE
CALCULATRICE, INTRODUCTION AU LAMBDA
Source avec une capture GENERATEUR DE CLEF RSA, TRÈS EFFICACE !
Source avec Zip Source avec une capture SERVEUR WEB EN PYTHON.
Source avec Zip Source avec une capture SPAMMEUR, PYTHON

 Sources de la même categorie

SOCKET MULTITHREAD SIMPLE par Guillamue06
TRANSFERT DE FICHIER PAR SOCKET par Guillamue06
Source avec une capture AUTO-FOLLOW/UNFOLLOW [TWITTER] EN [PERL] UTILISANT NET::TWIT... par GeroXXXX
Source avec Zip PINGEUR RÉSEAU par jeanbleo44
Source avec Zip Source avec une capture LISTING ET LOGS DES CONNEXIONS ET DECONNEXIONS DE MACHINES Q... par saigneurdushi

 Sources en rapport avec celle ci

Source avec une capture HTTP FORWARDER par matad0r
Source avec Zip Source avec une capture I.A. (DÉBUTANT) par Rano Its
Source avec Zip Source avec une capture SERVEUR WEB EN PYTHON. par xeolin
Source avec une capture CRYPTAGE AVEC LE CHIFFRE DE CÉSAR par ara3n
Source avec Zip Source avec une capture SERVEUR HTTP/CGI par kedare

Commentaires et avis

Commentaire de aera group le 12/05/2007 16:41:24

Bonjour,
Pour commencer, l'idée du jeu est génial, mais je n'est pas bien compris comment on fait pour joué : j'ai lancer le serveur, mais je ne sais pas à quoi servent les pages internets : sur laquelles dois je cliqué ? Et certain lien sont "morts". Merci d'éclairer ma lanterne

Commentaire de xeolin le 26/05/2007 14:01:59

En fait tu doit lancer le programme
ensuite ouvre internet explorer/firefox/opera a l adresse 127.0.0.1 OU localhost.
et la tu as le site dont les pages se trouvent dans la racine du logiciel python.

nb : jqi pris les pages dun site o hasard pour faire lexemple

pardonne moi pour mon orthographe, mon clqvier est configure en anglais et je nai pas lhabitude

Xeolin

Commentaire de aera group le 26/05/2007 16:29:13

Ok Merci beaucoups, je test ça tous de suite

Commentaire de aera group le 26/05/2007 16:32:39

Très bien, je met 9/10

Commentaire de V4mp le 26/09/2007 01:15:37 9/10

Bien joué xeolin ...

9/10

Commentaire de xeolin le 05/07/2008 18:55:57

DINg - je le redis,apres avoir relis le texte j'ai trouvé 5 faille de securitée, je vais enlever tout ca...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

heklp serverSocket [ par Harvester_ ] Voila j'ai utliser un script du siteC'est un server socket qui marchait tres bien au debut(source)#!C:\Python23\python.exeimport SocketServerimport sy Socket+timeout [ par power211 ] Re Bonjour tout lemonde,bon voila j aurai une ptite question sur les sockets plus les timeout.Donc je vais directement aller au but avec un exemple co Bittorent Source [ par 0mega ] Bonjour a tous ! J'essaie en vain de compiler la source du dernier client bittorent (python 2.4) mais sans succ&#233;s. Voici le read-me inclus av Librairie graphique vectoriel [ par DoudouBidou ] Bonjour, j'ai depuis quelques jour un projet en t&#234;te, celui de r&#233;aliser un logiciel de saisi de sch&#233;ma &#233;lectrique en python. Application FTP, urgent [ par mus_python ] Bonjour tout le monde, je viens de commencer la programmation avec python et je suis charg&#233; de faire une application qui permet la connexion entr Socket et Threading [ par dabcorp ] Bonjour , J'ai fait un client/serveur socket , mais je me comprend pas les threads ... Je suis oblig&#233; de faire une boucle pour relance le progra serveur python et client visual basic [ par vinz973 ] bonjour je souhaite cr&#233;er un&nbsp;serveur en python (socket) qui recoive des donn&#233;es d'une client en visual basic (winsock ) en TCP le probl reseau local, serveur/client [ par xilure ] Bonjour,j'ai fait un petit scripte, que me permet soit d'etre un serveur ou un clien, et d'envoyer des message (chat en reseau) Mais voila, quand je s DLA - mouvement de brown [ par loper ] salut, ben jai un petit sousis, je dois r&#233;aliser un programme en Numeric python ki repr&#233;sente le mouvement des particules. ci-joint je vous besoin d'aide ,code client/serveur [ par Veust ] Je suis actuellement sur un projet ou je suis suppposé écrire un code sous python permettant de faire communiquer plusieurs types de plateformes (PC,


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales