begin process at 2008 07 05 20:33:19
1 205 340 membres
309 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SERVEUR HTTP PYTHON


Information sur la source

Catégorie :Réseau & internet Classé sous : http, serveur, simple, bien, parfait Niveau : Initié Date de création : 14/04/2007 Vu / téléchargé: 2 564 / 148

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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
  • 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
        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 !
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    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

  • signaler à un administrateur
    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

  • signaler à un administrateur
    Commentaire de aera group le 26/05/2007 16:29:13

    Ok Merci beaucoups, je test ça tous de suite

  • signaler à un administrateur
    Commentaire de aera group le 26/05/2007 16:32:39

    Très bien, je met 9/10

  • signaler à un administrateur
    Commentaire de V4mp le 26/09/2007 01:15:37 9/10

    Bien joué xeolin ...

    9/10

  • signaler à un administrateur
    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

Pub



Appels d'offres

Plugin Dialer outlook
Budget : 2 000€
Travail graphique- ill...
Budget : 1 000€
creation de marque et ...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS