Scanner de Port [Python]

Description

Hello everyoneVoici le code que j'ai fais en cours, pour l'utilisation c'est tout simple vousrentrez dans le terminal :python <leNomDuScript> <ipOuAdresseFTP/URL>Il vous permettera de savoir si les ports 443/21/21/80 sont ouvert ou non ! Peu d'utilité à première vue mais avec un peu d'imagination on peut en fairedes trus cools ! :-) K.


import socket;
import optparse;
from threading import *;

screenLock=Semaphore(value=1);

def isPortOpen(host,port):
    s=socket.socket();
    try:
        s.connect((host,port));
        screenLock.acquire();
        print "Port %d ouvert"%port;
        screenLock.release();
    except Exception,e:
        screenLock.acquire();
        print "Port %d ferme"%port;
        screenLock.release();


def scan(host,ports):
    try:
        ip=socket.gethostbyname(host);
    except Exception,e:
        print(str(e));
        exit(0);
    try:
        hostname=socket.gethostbyaddr(ip);
        print "Resultats pour %s"%hostname;
    except:
        print "Resultats pour %s"%ip;

    for port in ports:
        t=Thread(target=isPortOpen,args=(ip,int(port)));
        t.start();
def main():
    parser=optparse.OptionParser();
    parser.add_option("-p","--ports",dest="ports",default="21,22,23,80,443",help="Ports a scanner",type="string")
    (options,args)=parser.parse_args();
    ports=options.ports.split(",");
    if(len(args)<1):
        print "Il faut un hostname";
        exit(0);

    host=args[0];
    scan(host,ports);

if __name__=="__main__":
    main();

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.