全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Python实现简易端口扫描器代码实例

在网上的一些资料的基础上自己又添了些新内容,算是Python socket编程练手吧。

#coding=utf-8
import socket
import time
import sys
import struct
import threading
from threading import Thread,activeCount

results=[]
def portScanner(ip,port):
  server = (ip,port)
  sockfd = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  sockfd.settimeout(0.1)     #设置阻塞模式下socket的超时时间
  ret = sockfd.connect_ex(server) #成功返回0,失败返回error的值。
  if not ret:
    sockfd.close()
    results.append([ip,port])
    #print '%s:%s is opened...' % (ip,port)
  else:
    sockfd.close()
    pass
  return ''
  

def ip2num(ip):     #将ip地址转换成数字
  lp = [int(x) for x in ip.split('.')]
  return lp[0] << 24 | lp[1] << 16 | lp[2] << 8 |lp[3]

def num2ip(num):
  ip = ['','','','']
  ip[3] = (num & 0xff)
  ip[2] = (num & 0xff00) >> 8
  ip[1] = (num & 0xff0000) >> 16
  ip[0] = (num & 0xff000000) >> 24
  return '%s.%s.%s.%s' % (ip[0],ip[1],ip[2],ip[3])

def iprange(ip1,ip2):
  num1 =socket.ntohl(struct.unpack("I",socket.inet_aton(str(ip1)))[0])
  num2 =socket.ntohl(struct.unpack("I",socket.inet_aton(str(ip2)))[0])
  tmp = num2 - num1
  if tmp < 0:
    return None
  else:
    return num1,num2,tmp


if __name__ == '__main__':

  if((len(sys.argv)!= 4)&(len(sys.argv)!= 2)):  #用法说明
    print 'Usage:\n\tscanner.py startip endip port'
    print '\tscanner.py ip'
    sys.exit()

  if len(sys.argv)==4:      #对某一IP段的扫描
    time_start=time.time()    #起始时间
    startip = sys.argv[1]    #起始IP
    endip = sys.argv[2]      #结束IP
    port = int(sys.argv[3])    #端口号

    res = iprange(startip,endip)
    if not res:
      print 'endip must be bigger than startone'
      sys.exit()
    elif res[2] == 0:
      portScanner(startip,port)
    else:
      for x in xrange(int(res[2])+1):    #IP地址依次递增
        startipnum = ip2num(startip)
        startipnum = startipnum + x
        if activeCount() <=1000:           
          Thread(target=portScanner,args=(num2ip(startipnum),port)).start()
        
    print "There are %d hosts." %len(results)
    results.sort()
    for ip,port in results:
      print "%s:%d is opened..." %(ip,port)
    times=time.time()-time_start      #用时
    print 'use time : %s' % times
        
  if len(sys.argv)==2:
    time_start=time.time()
    port=0
    ip=sys.argv[1]
    while(port<2000):
      if activeCount() <= 40:   #设置40线程扫描
        Thread(target = portScanner, args = (ip, port)).start()
        port=port+1
    results.sort()
    for ip,port in results:
      print "%s:%d is opened..." %(ip,port)
    times=time.time()-time_start
    print 'use time : %s' % times

使用效果如下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# python端口扫描器  # python  # 扫描器  # python实现端口扫描  # 使用Python编写简单的端口扫描器的实例分享  # python nmap实现端口扫描器教程  # 用Python编写一个高效的端口扫描器的方法  # 使用Python3制作TCP端口扫描器  # 实例探究Python以并发方式编写高性能端口扫描器的方法  # python编写简单端口扫描器  # Python3多线程版TCP端口扫描器  # python 3.6.7实现端口扫描器  # 利用Python实现端口扫描器的全过程  # 基础上  # 转换成  # 大家多多  # 又添  # 端口号  # 在网上  # 模式下  # settimeout  # ret  # connect_ex  # SOCK_STREAM  # port  # ip  # server  # AF_INET  # sockfd  # ip2num  # return  # times  # int 


相关文章: 专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  常州自助建站费用包含哪些项目?  建站之星后台管理如何实现高效配置?  海南网站制作公司有哪些,海口网是哪家的?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  建站之星如何保障用户数据免受黑客入侵?  三星网站视频制作教程下载,三星w23网页如何全屏?  如何在VPS电脑上快速搭建网站?  建站之星如何快速解决建站难题?  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  高防服务器如何保障网站安全无虞?  如何在Windows虚拟主机上快速搭建网站?  如何用5美元大硬盘VPS安全高效搭建个人网站?  如何在搬瓦工VPS快速搭建网站?  动图在线制作网站有哪些,滑动动图图集怎么做?  如何在阿里云通过域名搭建网站?  如何快速搭建高效香港服务器网站?  制作营销网站公司,淘特是干什么用的?  建站主机核心功能解析:服务器选择与网站搭建流程指南  如何制作算命网站,怎么注册算命网站?  深圳网站制作案例,网页的相关名词有哪些?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  香港网站服务器数量如何影响SEO优化效果?  Android滚轮选择时间控件使用详解  如何选择高性价比服务器搭建个人网站?  平台云上自主建站:模板化设计与智能工具打造高效网站  如何快速生成橙子建站落地页链接?  青浦网站制作公司有哪些,苹果官网发货地是哪里?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  已有域名和空间,如何快速搭建网站?  如何在IIS7中新建站点?详细步骤解析  南平网站制作公司,2025年南平市事业单位报名时间?  如何快速上传建站程序避免常见错误?  网站制作的步骤包括,正确网址格式怎么写?  制作企业网站建设方案,怎样建设一个公司网站?  学校建站服务器如何选型才能满足性能需求?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  外贸公司网站制作哪家好,maersk船公司官网?  制作电商网页,电商供应链怎么做?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  建站主机与服务器功能差异如何区分?  如何快速搭建FTP站点实现文件共享?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  建站之星免费模板:自助建站系统与智能响应式一键生成  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  教程网站设计制作软件,怎么创建自己的一个网站?  建站之星如何配置系统实现高效建站?  如何在万网开始建站?分步指南解析  网站专业制作公司有哪些,做一个公司网站要多少钱? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。