python实现指定ip端口扫描方式


Posted in Python onDecember 17, 2019

在Linux中判断一台主机是否可达,可以使用ping命令,而判断端口是否打开,可以使用telnet命令,但是telnet命令没有超时时间的参数,使用起来不是很方便,那么可以利用Python来完成一个端口扫描的功能

socket实现端口扫描

#!/usr/bin/env python

import socket

def get_ip_status(ip,port):
  server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  try:
    server.connect((ip,port))
    print('{0} port {1} is open'.format(ip, port))
  except Exception as err:
    print('{0} port {1} is not open'.format(ip,port))
  finally:
    server.close()

if __name__ == '__main__':
  host = '10.0.0.11'
  for port in range(20,100):
    get_ip_status(host,port)

telnetlib实现端口扫描

import telnetlib

def get_ip_status(ip,port):
  server = telnetlib.Telnet()   # 创建一个Telnet对象
  try:
    server.open(ip,port)     # 利用Telnet对象的open方法进行tcp链接
    print('{0} port {1} is open'.format(ip, port))
  except Exception as err:
    print('{0} port {1} is not open'.format(ip,port))
  finally:
    server.close()

if __name__ == '__main__':
  host = '10.0.0.11'
  for port in range(20,100):
    get_ip_status(host,port)

多线程实现高效扫描

#!/usr/bin/env python

import telnetlib
import threading

def get_ip_status(ip,port):
  server = telnetlib.Telnet()
  try:
    server.open(ip,port)
    print('{0} port {1} is open'.format(ip, port))
  except Exception as err:
    print('{0} port {1} is not open'.format(ip,port))
  finally:
    server.close()

if __name__ == '__main__':
  host = '10.0.0.11'
  threads = []
  for port in range(20,100):
    t = threading.Thread(target=get_ip_status,args=(host,port))
    t.start()
    threads.append(t)

  for t in threads:
    t.join()

以上这篇python实现指定ip端口扫描方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python不带重复的全排列代码
Aug 13 Python
Python深入学习之特殊方法与多范式
Aug 31 Python
python PIL模块与随机生成中文验证码
Feb 27 Python
python Django批量导入数据
Mar 25 Python
Python内建函数之raw_input()与input()代码解析
Oct 26 Python
Python类和对象的定义与实际应用案例分析
Dec 27 Python
Python 读取 YUV(NV12) 视频文件实例
Dec 09 Python
python-docx文件定位读取过程(尝试替换)
Feb 13 Python
Python数据模型与Python对象模型的相关总结
Jan 26 Python
python基于Kivy写一个图形桌面时钟程序
Jan 28 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
Mar 03 Python
python 管理系统实现mysql交互的示例代码
Dec 06 Python
python飞机大战pygame碰撞检测实现方法分析
Dec 17 #Python
python wxpython 实现界面跳转功能
Dec 17 #Python
python飞机大战pygame游戏背景设计详解
Dec 17 #Python
python实现名片管理器的示例代码
Dec 17 #Python
python飞机大战pygame游戏框架搭建操作详解
Dec 17 #Python
使用Python测试Ping主机IP和某端口是否开放的实例
Dec 17 #Python
基于Django实现日志记录报错信息
Dec 17 #Python
You might like
PHP中防止SQL注入攻击和XSS攻击的两个简单方法
2010/04/15 PHP
php去除重复字的实现代码
2011/09/16 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
2019/04/02 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
PHP数组与字符串互相转换实例
2020/05/05 PHP
jquery div拖动效果示例代码
2013/12/08 Javascript
jquery实现的下拉和收缩效果示例
2014/08/21 Javascript
jQuery搜索子元素的方法
2015/02/10 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
JS中多种方式创建对象详解
2016/03/22 Javascript
完美实现八种js焦点轮播图(上篇)
2016/07/18 Javascript
让编辑器支持word复制黏贴、截屏的js代码
2016/10/17 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
2016/12/22 Javascript
node.js基于mongodb的搜索分页示例
2017/01/22 Javascript
bootstrap select插件封装成Vue2.0组件
2017/04/17 Javascript
浅谈struts1 & jquery form 文件异步上传
2017/05/25 jQuery
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
Element-UI中Upload上传文件前端缓存处理示例
2019/02/21 Javascript
在vue中使用G2图表的示例代码
2019/03/19 Javascript
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
使用python 3实现发送邮件功能
2018/06/15 Python
Django组件之cookie与session的使用方法
2019/01/10 Python
浅谈Python批处理文件夹中的txt文件
2019/03/11 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
2019/06/27 Python
pandas对dataFrame中某一个列的数据进行处理的方法
2019/07/08 Python
联想新加坡官方网站:Lenovo Singapore
2017/10/24 全球购物
美国购买舞会礼服网站:Couture Candy
2019/12/29 全球购物
大学生毕业自我鉴定
2013/11/06 职场文书
宿舍卫生检讨书
2014/01/16 职场文书
村级环境卫生整治方案
2014/05/04 职场文书
党支部承诺书
2015/01/20 职场文书
校长个人总结
2015/03/03 职场文书
趣味运动会加油词
2015/07/18 职场文书
100句人生哲理语录集锦:强者征服今天,懒汉坐等明天
2019/10/18 职场文书