Python实现的端口扫描功能示例


Posted in Python onApril 08, 2018

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

一 代码

import sys
import socket
import multiprocessing
def ports(ports_service):
  #获取常用端口对应的服务名称
  for port in list(range(1,100))+[143,145,113,443,445,3389, 8080]:
    try:
      ports_service[port] = socket.getservbyport(port)
    except socket.error:
      pass
def ports_scan(HOST, ports_service):
  ports_open = []
  try:
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    #sock.settimeout(60)
  except socket.error:
    print('socket creation error')
    sys.exit()
  for port in ports_service:
    try:
      #尝试连接指定端口
      sock.connect((HOST,port))
      #记录打开的端口
      ports_open.append(port)
      sock.close()
    except socket.error:
      pass
  return ports_open
if __name__=='__main__':
  m = multiprocessing.Manager()
  ports_service = dict()
  results = dict()
  ports(ports_service)
  #创建进程池,允许最多8个进程同时运行
  pool = multiprocessing.Pool(processes=8)
  net = '192.168.0.'
  for host_number in map(str,range(105,106)):
    host = net+host_number
    #创建一个新进程,同时记录其运行结果
    results[host] = pool.apply_async(ports_scan, (host, ports_service))
    print('starting '+host+'...')
  #关闭进程池,close()必须在join()之前调用
  pool.close()
  #等待进程池中的进程全部执行结束
  pool.join()
  #打印输出结果
  for host in results:
    print('='*30)
    print(host,'.'*10)
    for port in results[host].get():
      print(port, ':', ports_service[port])

二 运行结果

starting 192.168.0.105...
==============================
192.168.0.105 ..........
80 : http

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中的复制操作及copy模块中的浅拷贝与深拷贝方法
Jul 02 Python
Python 列表(List) 的三种遍历方法实例 详解
Apr 15 Python
Python实现中一次读取多个值的方法
Apr 22 Python
python爬虫爬取微博评论案例详解
Mar 27 Python
python实现单目标、多目标、多尺度、自定义特征的KCF跟踪算法(实例代码)
Jan 08 Python
如何在windows下安装Pycham2020软件(方法步骤详解)
May 03 Python
Python实现SMTP邮件发送
Jun 16 Python
解决pip install psycopg2出错问题
Jul 09 Python
记一次django内存异常排查及解决方法
Aug 07 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
Aug 24 Python
python中实现词云图的示例
Dec 19 Python
python源码剖析之PyObject详解
May 18 Python
Python简单实现的代理服务器端口映射功能示例
Apr 08 #Python
pandas修改DataFrame列名的方法
Apr 08 #Python
Python数据分析库pandas基本操作方法
Apr 08 #Python
浅谈pandas中shift和diff函数关系
Apr 08 #Python
使用DataFrame删除行和列的实例讲解
Apr 08 #Python
将字典转换为DataFrame并进行频次统计的方法
Apr 08 #Python
pandas创建新Dataframe并添加多行的实例
Apr 08 #Python
You might like
php环境无法上传文件的解决方法
2014/04/30 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
2016/11/30 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
关于JavaScript的一些看法
2009/05/27 Javascript
javascript 静态对象和构造函数的使用和公私问题
2010/03/02 Javascript
JavaScript之IE的fireEvent方法详细解析
2013/11/20 Javascript
JavaScript采用递归算法计算阶乘实例
2015/08/04 Javascript
javascript实现3D变换的立体圆圈实例
2015/08/06 Javascript
jsonp跨域请求数据实现手机号码查询实例分析
2015/12/12 Javascript
Bootstrap栅格系统使用方法及页面调整变形的解决方法
2017/03/10 Javascript
微信小程序开发之实现自定义Toast弹框
2017/06/08 Javascript
vue实现2048小游戏功能思路详解
2018/05/09 Javascript
node 文件上传接口的转发的实现
2019/09/23 Javascript
简单了解vue中的v-if和v-show的区别
2019/10/08 Javascript
为什么推荐使用JSX开发Vue3
2020/12/28 Vue.js
巧用Python装饰器 免去调用父类构造函数的麻烦
2012/05/18 Python
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
Python批量查询域名是否被注册过
2017/06/21 Python
基于DataFrame筛选数据与loc的用法详解
2018/05/18 Python
python 多线程中子线程和主线程相互通信方法
2018/11/09 Python
python、Matlab求定积分的实现
2019/11/20 Python
Python使用GitPython操作Git版本库的方法
2020/02/29 Python
Keras:Unet网络实现多类语义分割方式
2020/06/11 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
美国最大的珠宝商之一:Littman Jewelers
2016/11/13 全球购物
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
Goodee官方商店:迷你投影仪
2021/03/15 全球购物
如何查询Oracle数据库中已经创建的索引
2013/10/11 面试题
教师岗位职责
2013/11/17 职场文书
值班管理制度范本
2015/08/06 职场文书
教你做个可爱的css滑动导航条
2021/06/15 HTML / CSS
Mysql如何实现不存在则插入,存在则更新
2022/03/25 MySQL
Docker 镜像介绍以及commit相关操作
2022/04/13 Servers
python index() 与 rindex() 方法的使用示例详解
2022/12/24 Python