begin process at 2010 09 04 18:26:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Python

 > 

Divers

 > 

Débutant(e)

 > 

raw socket


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

raw socket

dimanche 20 août 2006 à 15:59:23 | raw socket

ebossss



Salut,
voila je cherche un tutorial (anglais ou francais) qui explique comment se servir des raw socket en python, sans passer par une bibliotheque externe.

merci d'avance
YG
vendredi 25 août 2006 à 13:10:48 | Re : raw socket

DoudouBidou

salut !

qu'est ce que tu entends par "raw socket"?
si tu veux pouvoir envoyer et recevoir des données avec le protocol udp ou tcp tu peux utiliser le module socket intégré à python

il y a un example tout simple dans la doc python pour faire un serveur et un client

http://docs.python.org/lib/socket-example.html

si tu veux des sockets non-bloquant, c'est à dire que ton programme ne s'arrête pas pendant que tu attends la réception de données par exemple, tu dois utiliser les threads

tu trouvera des exemples ici:

http://www.onlamp.com/pub/a/python/2004/02/12/advanced_nio.html?page=1


et en général un petit tour sur ce site permet de résoudre bien des problème:
http://wikipython.flibuste.net/moin.py/

Seb
vendredi 25 août 2006 à 13:23:36 | Re : raw socket

ebossss


qu'est ce que tu entends par "raw socket"?
-> des sockets de type SOCK_RAW et non de type SOCK_STREAM ou SOCK_DGRAM

En fait, ce que je veux c intercepter les paquets ip pour ecrire un sniffer reseau.(traiter manuellement les entetes ip et les entetes de couche transport et applicatives).
Voila.

samedi 26 août 2006 à 17:49:46 | Re : raw socket

DoudouBidou

Réponse acceptée !
j'ai trouvé ça sur le net si ça peut t'aider

#!/usr/bin/python

import sys
import string
import struct
from socket import *

proto = 0x55aa

s = socket(AF_PACKET, SOCK_RAW, proto)
s.bind(("eth1",proto))

ifName,ifProto,pktType,hwType,hwAddr = s.getsockname()

srcAddr = hwAddr
dstAddr = "\x01\x02\x03\x04\x05\x06"
ethData = "here is some data for an ethernet packet"

txFrame = struct.pack("!6s6sh",dstAddr,srcAddr,proto) + ethData

print "Tx[%d]: "%len(ethData) + string.join(["%02x"%ord(b) for b in ethData]," ")

s.send(txFrame)

rxFrame = s.recv(2048)

dstAddr,srcAddr,proto = struct.unpack("!6s6sh",rxFrame[:14])
ethData = rxFrame[14:]

print "Rx[%d]: "%len(ethData) + string.join(["%02x"%ord(b) for b in ethData]," ")

s.close()

samedi 26 août 2006 à 17:54:15 | Re : raw socket

DoudouBidou

apparement mon dernier exemple ne fonctionne que sous linux (je ne sais pas sur quelle plateforme tu es)

sinon ya d'autres infos ici mais c'est un module externe

http://mail.python.org/pipermail/python-list/2004-October/246974.html
samedi 26 août 2006 à 18:04:46 | Re : raw socket

ebossss


Apparement les raw socket ne sont pas supportees sous windows (je travaille sous windows)..
Je vais donc passer sous linux pour faire le sniffer.
Merci de ton aide, je vais me servir de ce bout de code comme base de travail.




Cette discussion est classée dans : socket, raw


Répondre à ce message

Sujets en rapport avec ce message

Client Serveur Netstat [ par power211 ] Bonjour à tous, je suis un ptit nouveau ds le monde du python, projet d ecole oblige mais c vrai que  le python c rapide comme langage.Bon treve de pl 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 Socket et Threading [ par dabcorp ] Bonjour , J'ai fait un client/serveur socket , mais je me comprend pas les threads ... Je suis obligé de faire une boucle pour relance le programme à 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 TWISTED : Transfert de fichier [ par chmod666 ] Bonjour,je viens enfin de trouver ce qu'il me faut aprés bcps bcps de recherche il faut le dire ... Situation:J'ai un client qui envoie un fichierJ' sys.exit() et raw_input() [ par jrbleboss ] Bonjour, Je vous explique mon problème : dans un thread j'ai un sys.exit() et dans le thread principal j'ai un raw_input() pour attendre l'appui d'en Lire et écrire en même temps [ par GenShiJin ] Bonjour à tous !Je m'excuse à l'avance si ma question a déjà été traité mais je cherche à savoir comment ouvrir un fichier en lecture et en écriture e msn client/serveur python [ par tsic ] Bonjour, je suis bloqué ilya preque 2 semaines dans le code suivant. je veut que le client et le serveur envoyent leurs message d'une maniere comme ms input() vs raw_input() [ par Aesir92 ] Bonjour, J'ai lu dans le guide "Learning to program" d'Alan Gauld, qu'il était préférable d'utiliser raw_input() et de convertir ensuite les données [Python] Trouver l'IP d'un PC à partir d'un Pocket PC [ par sacrechipou ] Salut!Je suis en stage d'informatique et on m'a demandé à partir d'un pocket pc de récupérer l'adresse ip du PC auquel il est connecté.Ayant débuté le


Nos sponsors


Sondage...

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
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,203 sec (4)

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