Home >Backend Development >Python Tutorial >Example of multi-threaded port scanning function implemented in python

Example of multi-threaded port scanning function implemented in python

高洛峰
高洛峰Original
2017-02-20 10:52:181789browse

The example in this article describes the multi-threaded port scanning function implemented in python. Share it with everyone for your reference, the details are as follows:

The following program gives the Python code for multi-thread scanning of a given IP host

#!/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)

Operation renderings

Example of multi-threaded port scanning function implemented in python

For more examples of multi-threaded port scanning functions implemented in python and related articles, please pay attention to the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn