一聚教程网:一个值得你收藏的教程网站

python实现的多线程端口扫描功能示例

mg电子:”王青(化名)是珠海魅族公司的一名员工,已经在珠海呆了四年的她早已把魅族当做了自己另一个家,但从今年开始,家“变样了”。

时间:2017-02-13 00:00:00 编辑:简简单单 来源:转载

本文实例讲述了python实现的多线程端口扫描功能。分享给大家供大家参考,具体如下:

下面的程序给出了对给定的ip主机进行多线程扫描的Python代码

 

 代码如下

#!/usr/bin/env python

#encoding: utf-8

importsocket, sys, thread, time

openPortNum=0

socket.setdefaulttimeout(3)

defusage():

  print'''''Usage:

  Scan the port of one IP: python port_scan_multithread.py -o

  Scan the port of one IP: python port_scan_multithread.py -m

  '''

  print'Exit'

  sys.exit(1)

defsocket_port(ip, PORT):

  globalopenPortNum

  ifPORT >65535:

    print'Port scanning beyond the port range, interrupt to scan'

    sys.exit(1)

  s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)

  result=s.connect_ex((ip, PORT))

  if(result==0):

    printip, PORT,'is open'

    openPortNum+=1

  s.close()

defstart_scan(IP):

  forportinrange(0,65535+1):

    thread.start_new_thread(socket_port, (IP,int(port)))

    time.sleep(0.006)

if__name__=='__main__':

  t=0

  iflen(sys.argv)<2orsys.argv[1]=='-h':

    usage()

  elifsys.argv[1]=='-o':

    ONE_IP=raw_input('Please input ip of scanning: ')

    t=time.time()

    start_scan(ONE_IP)

  elifsys.argv[1]=='-m':

    MANY_IP=raw_input('Please input many ip of scanning: ')

    IP_SEG=MANY_IP.split(',')

    t=time.time()

    foriinIP_SEG:

      start_scan(i)

  print

  print'total open port is %s, scan used time is: %f '%(openPortNum, time.time()-t)

 

运行效果图

python实现的多线程端口扫描功能示例

文章评论

热门栏目

合作: 真钱娱乐 狮威88 mg电子