Maison >développement back-end >Tutoriel Python >Exemple de fonction d'analyse de port multithread implémentée en python

Exemple de fonction d'analyse de port multithread implémentée en python

高洛峰
高洛峰original
2017-02-20 10:52:181786parcourir

L'exemple de cet article décrit la fonction d'analyse de port multithread implémentée en python. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Le programme suivant donne le code Python pour l'analyse multithread d'un hôte IP donné

#!/usr/bin/env python
#encoding: utf-8
import socket, sys, thread, time
openPortNum = 0
socket.setdefaulttimeout(3)
def usage():
  print '''''Usage:
  Scan the port of one IP: python port_scan_multithread.py -o <ip>
  Scan the port of one IP: python port_scan_multithread.py -m <ip1, ip2, ip3, ip4 ...>
  &#39;&#39;&#39;
  print &#39;Exit&#39;
  sys.exit(1)
def socket_port(ip, PORT):
  global openPortNum
  if PORT > 65535:
    print &#39;Port scanning beyond the port range, interrupt to scan&#39;
    sys.exit(1)
  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  result = s.connect_ex((ip, PORT))
  if(result == 0):
    print ip, PORT,&#39;is open&#39;
    openPortNum += 1
  s.close()
def start_scan(IP):
  for port in range(0, 65535+1):
    thread.start_new_thread(socket_port, (IP, int(port)))
    time.sleep(0.006)
if __name__ == &#39;__main__&#39;:
  t = 0
  if len(sys.argv)<2 or sys.argv[1] == &#39;-h&#39;:
    usage()
  elif sys.argv[1] == &#39;-o&#39;:
    ONE_IP = raw_input(&#39;Please input ip of scanning: &#39;)
    t = time.time()
    start_scan(ONE_IP)
  elif sys.argv[1] == &#39;-m&#39;:
    MANY_IP = raw_input(&#39;Please input many ip of scanning: &#39;)
    IP_SEG = MANY_IP.split(&#39;,&#39;)
    t = time.time()
    for i in IP_SEG:
      start_scan(i)
  print
  print &#39;total open port is %s, scan used time is: %f &#39; % (openPortNum, time.time()-t)

Rendu des opérations

Exemple de fonction danalyse de port multithread implémentée en python

Pour plus d'exemples de fonctions d'analyse de port multithread implémentées en python, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn