begin process at 2010 07 29 15:55:00
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité & cryptage

 > SCANNER DE PORTS.

SCANNER DE PORTS.


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Sécurité & cryptage Classé sous :scanner, port, ip, threads Niveau :Débutant Date de création :20/11/2005 Date de mise à jour :12/12/2005 18:02:13 Vu / téléchargé :7 105 / 563

Auteur : bouceka

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

 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...")


 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

12 décembre 2005 18:02:14 :
Optimisation du code : chaque thread scanne 5 ports. Ajout d'un .zip

 Sources du même auteur

Source avec Zip LISTEUR DE FICHIER EN RÉSEAUX
JEU DU 21.
Source avec Zip CRYPTAGE DE MOTS/PHRASES.

 Sources de la même categorie

Source avec Zip CRYPTEUR CARRE DE POLYBE par Dipx
Source avec une capture HORAIRESRESTREINTS par lonewolfs
Source avec Zip HIDS EN PYTHON par KimbleMandel
CRYPTEUR EN PYTHON par tallgenius
STEGANOGRAPHIE par Marnage

 Sources en rapport avec celle ci

SIMPLE COMPARATEUR IPV4 EN PYTHON par erebos
INCRÉMENTE IP par Marnage
(WIN32) CONNEXIONS RÉSEAUX - OBTENIR LES INFOS DES INTERFACE... par Willi
SCANNER D' ADRESSES MAILS (ENTREPRISES, MESSAGERIES, BOITE ... par kerneltony95
Source avec Zip SCANNEUR D'IP21 par Bl0tCh

Commentaires et avis

Commentaire de sorcier0011 le 22/11/2005 20:35:50

Bravo ! ca fonctionne vraiment bien !!

Commentaire de bouceka le 12/12/2005 18:03:46

Merci :p

Commentaire de Blackbeard le 06/09/2006 01:10:13

je pense pas qu'on va me repondre depuis le tps mais bon...

quand je rentre mon ip ça fonctionne pas
quand je rentre 192.168.1.1 ça fonctionne pas non-plus

message d'erreur :

[code]Entrer l'adresse ip: 192.168.1.1
Entrer le port de debut: 1
Entrer le port de fin: 10000
Traceback (most recent call last):
  File "/home/Blackbeard/Desktop/pythonfrance_source_34723.zip_FILES/Scanner_de_ports.py", line 64, in ?
    lstth[i].start()
  File "/usr/lib/python2.4/threading.py", line 416, in start
    _start_new_thread(self.__bootstrap, ())
thread.error: can't start new thread[/code]


ça ne fonctionne que lorsque je rentre "localhost" et la il me donne les ports ouverts sur mon reseau local biensur.
lorsqu'on fait "Y" pour enregistrer le resultat il est en registré ou ? je ne le trouve pas

ps : j'ai rajouté #!/usr/bin/python au debut car je suis sous linux.

Commentaire de Blackbeard le 06/09/2006 01:17:58

je corrige : j'ai trouver ou etait le rapport enregistré.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

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 Diverses questions et precision [ par sheorogath ] Bonjour,je me remets au python mais plus serieusement cette fois ci :palors j'ai plusieurs question sur des choses sur lesquels je trouve que peux d'i scripts python [ par emma66 ] Bonjour, je cherche un script en python dont le role est de mémoriser (dans la liste de chaines Utilisateurs) le nom de tous les utilisateurs ayant te script python pour serveur ftp [ par emma66 ] Bonjour, je cherche un script en python dont le role est de mémoriser (dans la liste de chaines Utilisateurs) le nom de tous les utilisateurs ayant te


Nos sponsors


Sondage...

CalendriCode

Juillet 2010
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

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,811 sec (3)

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