找回密码
 立即注册

QQ登录

只需一步,快速开始

欢迎中测联盟老会员回家,专门使用25年老域名强势回归
查看: 361|回复: 0

[其它] python2.7版多线程端口扫描

[复制链接]
发表于 2018-10-20 20:35:31 | 显示全部楼层 |阅读模式
  1. #coding:utf-8
  2. #coding:gbk
  3. #!/usr/bin/python
  4. # Python:          2.7
  5. # Platform:        Windows
  6. # Program:         端口扫描
  7. # History:         2017.1.22

  8. import socket, time, thread
  9. timeout=6
  10. socket.setdefaulttimeout(timeout)

  11. def socket_port(ip,port):
  12.    """
  13.    输入IP和端口号,扫描判断端口是否开放
  14.    """
  15.    try:
  16.        if port>=65535:
  17.            print '端口扫描结束'
  18.        s=socket.socket()
  19.        result=s.connect_ex((ip,port))
  20.        if result==0:
  21.            lock.acquire()
  22.            print  ip,':',port,'端口开放'
  23.            lock.release()
  24.        s.close()
  25.    except:
  26.        print '端口扫描异常'

  27. def ip_scan(ip):
  28.    """
  29.    输入IP,扫描IP的0-65534端口情况
  30.    """
  31.    try:
  32.        print '开始扫描 %s' % ip
  33.        start_time=time.time()
  34.        for i in range(0,65534):
  35.            thread.start_new_thread(socket_port,(ip,int(i)))
  36.        print '扫描端口完成,总共用时 :%.2f' %(time.time()-start_time)
  37.        raw_input("Press Enter to Exit")
  38.    except:
  39.        print '扫描ip出错'
  40.       

  41. if __name__=='__main__':
  42.    url=raw_input('请输入要扫描的ip:\n')
  43.    lock=thread.allocate_lock()
  44.    ip_scan(url)
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表