begin process at 2013 05 25 03:14:48
  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é :10 166 / 623

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 Source avec une capture NOTHING NOTHING NOTHING NOTHING par LoloBali
SOLVEUR DE CAPTCHA / RESOUDRE LES CALCULS MATHEMATIQUE (BASI... par saigneurdushi
Source avec une capture GÉNÉRATEUR DE MOT DE PASSE PYTHON (CLI) par svmars
Source avec Zip Source avec une capture GÉNÉRATEUR DE MOT DE PASSE PYTHON / WXPYTHON par svmars
CRYPTE ET DECRYPTE UN FICHIER (AVEC HASH POUR VÉRIFICATION) par saigneurdushi

 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

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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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 : 1,045 sec (4)

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