IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Envoyer des bytes via socket


Sujet :

Réseau/Web Python

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Envoyer des bytes via socket
    Bonjour, je débute en python et je bloque pour envoyer des bytes (au sens données non interprétées comme du string) à un serveur socks. Voilà mon debut de fonction pour instancier une connexion avec un serveur socks v5:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    def buildpacktV5(IP):
           #Cette partie est bien interpréte comme des bytes
    	s='\x05' #version de socks
    	s=s+'\x01' #demande connexion TCP/IP
    	s=s+'\x00' #réservé
    	s=s+'\x01' #IPv4
            #-------------------------------------------------------------------
            #c'est ici que je bloque
    	for s2 in IP.split('.'): #on met l'ip
    		s2=hex(int(s2))
    		s=s+s2.replace('0x','\x') #Comment formater s2 correctement? Ici j'obtiens:
                                                        # Invalid \x escape
    	s=s+'\x00'
    	s=s+'\x50'
    	sok=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    	sok.connect(('127.0.0.1',25000))
    	sok.send(s)
    	sok.close()
    Le problème se pose quand je dois formater les quatre octets de mon ip. Si quelqu'un pouvait m'aider j'apprecierais grandement. Merci.

  2. #2
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Bon je me répond à moi même. Il suffisait de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for s2 in IP.split('.'): 
    		s2=chr(int(s2))
    		s=s+s2

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 114
    Points : 129
    Points
    129
    Par défaut
    voici un petit programme dont tu pourrais t'inspirer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    import struct
     
    def SendData(HOST, PORT, ref=1000):
    	print 'Send data to ', HOST, ' ', PORT
     
    	# connect
    	s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     
    	s.connect( (HOST,PORT) )
    	print 'connect ok'
     
    	msg=struct.pack('iiiiffff',
    				socket.htonl(1),     # Id
    				socket.htonl(48),    # packet length
    				socket.htonl(ref),   # reference
    				socket.htonl(80003), # surfaceMean
    				float(200),          # lengthMin
    				float(600),          # lengthMax
    				float(15),           # HeightMin
    				float(100)           # HeightMin
    				)
     
     
    	s.send(msg)
    	print 'msg send len=', len(msg),
     
    	s.close()

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/12/2009, 11h31
  2. Imposible d'envoyer des mail via un autre serveur
    Par HwRZxLc4 dans le forum Administration système
    Réponses: 0
    Dernier message: 27/04/2008, 15h37
  3. je peux pas envoyer des emails via mon application
    Par scofild20 dans le forum Réseau
    Réponses: 7
    Dernier message: 20/10/2007, 22h54
  4. Envoyer des données sans socket
    Par siaoly dans le forum Programmation et administration système
    Réponses: 1
    Dernier message: 30/05/2006, 12h04
  5. Envoyer des SMS via une application en C++
    Par yakotey dans le forum C++
    Réponses: 1
    Dernier message: 09/01/2006, 19h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo