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 解析XML文件
Apr 15 Python
详解Python中映射类型(字典)操作符的概念和使用
Aug 19 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
Dec 27 Python
Python如何发布程序的详细教程
Oct 09 Python
详解Python:面向对象编程
Apr 10 Python
Python Web框架之Django框架文件上传功能详解
Aug 16 Python
python3.6中@property装饰器的使用方法示例
Aug 17 Python
Python实现快速排序的方法详解
Oct 25 Python
python NumPy ndarray二维数组 按照行列求平均实例
Nov 26 Python
python 发送get请求接口详解
Nov 17 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
Dec 24 Python
Jmeter调用Python脚本实现参数互相传递的实现
Jan 22 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
ThinkPHP开发--使用七牛云储存
2017/09/14 PHP
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
DD_belatedPNG,IE6下PNG透明解决方案(国外)
2010/12/06 Javascript
javascript开发技术大全 第4章 直接量与字符集
2011/07/03 Javascript
js数组的操作详解
2013/03/27 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
js中的getAttribute方法使用示例
2014/08/01 Javascript
浅谈javascript中自定义模版
2015/01/29 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
2015/12/10 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
2016/05/24 Javascript
JavaScript 对象字面量讲解
2016/06/06 Javascript
Bootstrap学习笔记之css样式设计(1)
2016/06/07 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
2016/06/09 Javascript
AngularJs expression详解及简单示例
2016/09/01 Javascript
老生常谈js-react组件生命周期
2017/05/02 Javascript
Vue完整项目构建(进阶篇)
2018/02/10 Javascript
浅谈js中的bind
2019/03/18 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
2020/05/15 Javascript
js实现网页随机验证码
2020/10/19 Javascript
Python SQLite3数据库日期与时间常见函数用法分析
2017/08/14 Python
解决Pycharm无法import自己安装的第三方module问题
2018/05/18 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
2018/10/21 Python
对Python中画图时候的线类型详解
2019/07/07 Python
pyinstaller打包找不到文件的问题解决
2020/04/15 Python
Python可以实现栈的结构吗
2020/05/27 Python
CSS3中的Transition过度与Animation动画属性使用要点
2016/05/20 HTML / CSS
美国领先的汽车轮胎和轮毂供应商:TireBuyer
2016/07/21 全球购物
英国No.1文具和办公用品在线:Euroffice
2016/09/21 全球购物
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
巾帼标兵事迹材料
2014/12/26 职场文书
2015个人半年总结范文
2015/03/09 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
2019暑假阅读倡议书
2019/06/24 职场文书
领导激励员工的演讲稿,各种会上用得到,建议收藏
2019/08/13 职场文书
SQL Server中交叉联接的用法详解
2021/04/22 SQL Server
java中用float时,数字后面加f,这样是为什么你知道吗
2021/09/04 Java/Android