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脚本将绝对url替换为相对url的教程
Apr 24 Python
python简单实现旋转图片的方法
May 30 Python
python变量不能以数字打头详解
Jul 06 Python
Python中的sort()方法使用基础教程
Jan 08 Python
python smtplib发送带附件邮件小程序
May 22 Python
解决python给列表里添加字典时被最后一个覆盖的问题
Jan 21 Python
Python实现的读取文件内容并写入其他文件操作示例
Apr 09 Python
django将网络中的图片,保存成model中的ImageField的实例
Aug 07 Python
python实现按关键字筛选日志文件
Dec 24 Python
pyecharts绘制中国2020肺炎疫情地图的实例代码
Feb 12 Python
解决python绘图使用subplots出现标题重叠的问题
Apr 30 Python
解析python中的jsonpath 提取器
Jan 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基础知识:类与对象(1)
2006/12/13 PHP
PHP实现的登录,注册及密码修改功能分析
2016/11/25 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
2017/03/28 PHP
javascript 原型模式实现OOP的再研究
2009/04/09 Javascript
jquery蒙版控件实现代码
2010/12/08 Javascript
js多级树形弹出一个小窗口层(非常好用)实例代码
2013/03/19 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
jquery插件jSignature实现手动签名
2015/05/04 Javascript
Javascript 高阶函数使用介绍
2015/06/15 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
JS简单实现多级Select联动菜单效果代码
2015/09/06 Javascript
快速解决js开发下拉框中blur与click冲突
2016/10/10 Javascript
Google 爬虫如何抓取 JavaScript 的内容
2017/04/07 Javascript
JS中的三个循环小结
2017/06/20 Javascript
对node.js中render和send的用法详解
2018/05/14 Javascript
微信小程序 如何保持登录状态
2019/08/16 Javascript
15分钟上手vue3.0(小结)
2020/05/20 Javascript
在ironpython中利用装饰器执行SQL操作的例子
2015/05/02 Python
python字符串编码识别模块chardet简单应用
2015/06/15 Python
Python+OpenCV感兴趣区域ROI提取方法
2019/01/10 Python
python实现按行分割文件
2019/07/22 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
2019/11/11 Python
Python自动巡检H3C交换机实现过程解析
2020/08/14 Python
HTML5+CSS3实现机器猫
2016/10/17 HTML / CSS
Perry Ellis官网:美国男士品味服装
2016/12/09 全球购物
瑞士最大的图书贸易公司:Orell Füssli
2019/12/28 全球购物
美国宠物护理专家:Revival Animal Health
2020/01/05 全球购物
嘻哈珠宝品牌:KRKC&CO
2020/10/19 全球购物
食品工程专业求职信
2014/06/15 职场文书
共产党员批评与自我批评
2014/10/15 职场文书
2014保险公司内勤工作总结
2014/12/16 职场文书
冰雪公主观后感
2015/06/16 职场文书
2015大学迎新晚会策划书
2015/07/16 职场文书
解决Mysql多行子查询的使用及空值问题
2022/01/22 MySQL
vue实现可以快进后退的跑马灯组件
2022/04/08 Vue.js