Accueil > > > SCANNER DE PORTS.
SCANNER DE PORTS.
Information sur la source
Description
Voici un scanner de ports, l'interêt de cette source es que le programme est orienté objet et que le scanner utilise les Threads.
Source
- # -*- coding: cp1252 -*-
- ## Scanner de ports
- ## By Bouceka
-
- ## Importation des modules
- import socket,threading
-
- ## Définition de la classe Thread
- class Thread_Scan(threading.Thread):
- "Definition d'une classe Thread"
- ## Constructeur
- def __init__(self,h,p):
- threading.Thread.__init__(self)
- self.host = h
- self.port = p
-
- ## Méthode run du Thread
- def run(self):
- global report
- for rang in range(self.port,self.port+5):
- self.mysocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- try:
- self.mysocket.connect((self.host,rang))
- except:
- self.mysocket.close()
- else:
- report[rang] = "ouvert."
- self.mysocket.close()
-
- ## Fonction qui affiche les ports ouvert
- def Affiche_port(report):
- lstreport = report.items()
- for port in lstreport:
- print "Port %s ouvert"%(port[0])
-
- ## Fonction qui enregistre le résultat
- def Enregistrer(report):
- lstreport = report.items()
- ofi = open("Scan_report.txt","a")
- ofi.write("*****\-Bouceka Report-/*****\n\n")
- if(len(lstreport) == 0):
- ofi.write("Aucun ports ouvert.")
- else:
- for rport in lstreport:
- ofi.write("|- Port %s ouvert."%(rport[0]))
- ofi.close()
-
- ## Programme principale
- if __name__ == "__main__":
-
- ## Création des variables
- report,i,lstth = {},0,[]
-
- ## Menu
- print "****\-Scanner de ports by Bouceka-/****\n"
- Host = raw_input("Entrer l'adresse ip: ")
- Portd = input("Entrer le port de debut: ")
- Portf = input("Entrer le port de fin: ")
-
- ## Création des Threads scannant 5 ports chacun
- for port in range(Portd,Portf+1,5):
- lstth.append(Thread_Scan(Host,port))
- lstth[i].start()
- i += 1
-
- ## Attente fin des Threads
- for c in lstth:
- c.join()
-
- ## Affiche port ouvert
- if(len(report) == 0):
- print "Aucun ports ouvert."
- else:
- Affiche_port(report)
-
- ## Demande d'enregistrement du resultat
- choix = raw_input("Voulez vous enregistrer le resultat: (O)ui | (N)on: ")
- if(choix.upper() == "O"):
- Enregistrer(report)
- print "Resultat enregistre avec succes !"
-
- Temp = raw_input("Appuyez sur une touche pour continuer...")
# -*- coding: cp1252 -*-
## Scanner de ports
## By Bouceka
## Importation des modules
import socket,threading
## Définition de la classe Thread
class Thread_Scan(threading.Thread):
"Definition d'une classe Thread"
## Constructeur
def __init__(self,h,p):
threading.Thread.__init__(self)
self.host = h
self.port = p
## Méthode run du Thread
def run(self):
global report
for rang in range(self.port,self.port+5):
self.mysocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
self.mysocket.connect((self.host,rang))
except:
self.mysocket.close()
else:
report[rang] = "ouvert."
self.mysocket.close()
## Fonction qui affiche les ports ouvert
def Affiche_port(report):
lstreport = report.items()
for port in lstreport:
print "Port %s ouvert"%(port[0])
## Fonction qui enregistre le résultat
def Enregistrer(report):
lstreport = report.items()
ofi = open("Scan_report.txt","a")
ofi.write("*****\-Bouceka Report-/*****\n\n")
if(len(lstreport) == 0):
ofi.write("Aucun ports ouvert.")
else:
for rport in lstreport:
ofi.write("|- Port %s ouvert."%(rport[0]))
ofi.close()
## Programme principale
if __name__ == "__main__":
## Création des variables
report,i,lstth = {},0,[]
## Menu
print "****\-Scanner de ports by Bouceka-/****\n"
Host = raw_input("Entrer l'adresse ip: ")
Portd = input("Entrer le port de debut: ")
Portf = input("Entrer le port de fin: ")
## Création des Threads scannant 5 ports chacun
for port in range(Portd,Portf+1,5):
lstth.append(Thread_Scan(Host,port))
lstth[i].start()
i += 1
## Attente fin des Threads
for c in lstth:
c.join()
## Affiche port ouvert
if(len(report) == 0):
print "Aucun ports ouvert."
else:
Affiche_port(report)
## Demande d'enregistrement du resultat
choix = raw_input("Voulez vous enregistrer le resultat: (O)ui | (N)on: ")
if(choix.upper() == "O"):
Enregistrer(report)
print "Resultat enregistre avec succes !"
Temp = raw_input("Appuyez sur une touche pour continuer...")
Historique
- 12 décembre 2005 18:02:14 :
- Optimisation du code : chaque thread scanne 5 ports. Ajout d'un .zip
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Scanner de port [ par iAure5974 ]
Salut tout le monde il y a peu de temps j'ai codé un petit scanner de port en python (2.7.2) qui fonctionne plutôt bien mais je le trouve lent (normal
Lastlog de plusieurs machines [ par koalasc ]
Bonjour Voila je cherche a faire un script en python avec des dictionnaires. En gros je pose la situation car je ne suis pas sur dans quel direction
communication entre 2 pc par port RS232 [ par pascalmetz ]
Bonjour, Je cherche des infos pour développer une application permettant de réaliser une communication entre 2 PC via le port RS232. Merci d'avance de
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 t
python et port parallèle [ par supai ]
bonjour a tous, Je recherche des informations, afin de créer un petit soft me permettant de stocker les données qui arrivent sur mo
Adresse IP FAI [ par dabcorp ]
Bonjour , Je recherche un moyen simple d'envoyer un IP contenant l'adresse IP du FAI de mes clients via mail quand celle ci change. J'ai déja fa
ip et reseau local [ par xilure ]
comment en python peut on trouver l'adresse IP d'un PC ? cela pour faire un chat sur un reseau local du meme type que celui ci http://www.siteduzero.c
Python er Threads [ par dirthangel ]
Salut a tous je suis programmeur perl, j'aimerais savoir si les threads en python sont stable ? car c'est un vraie problème en Perl merci !!!
Comment suspendre un processus sous Windows en passant par ses threads ? [ par ijneb11 ]
Bonjour,Je développe une application 3D en python qui fonctionne sous Linux ET sous Windows. Tout marche (à peu près) bien, excepté un point particuli
[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
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
974 Application Server (12.2.4.0)974 APPLICATION SERVER (12.2.4.0)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP mySongBook Player (1.0.0)MYSONGBOOK PLAYER (1.0.0)mySongBook Player est un logiciel gratuit permettant l'accès à une archive de tablatures/partitio... Cliquez pour télécharger mySongBook Player
|