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使用urllib2实现发送带cookie的请求
Apr 28 Python
python搭建虚拟环境的步骤详解
Sep 27 Python
python 日期操作类代码
May 05 Python
Python简单过滤字母和数字的方法小结
Jan 09 Python
详解python数据结构和算法
Apr 18 Python
Python绘制股票移动均线的实例
Aug 24 Python
python采集百度搜索结果带有特定URL的链接代码实例
Aug 30 Python
python实现126邮箱发送邮件
May 20 Python
Python实现一个优先级队列的方法
Jul 31 Python
Python实现文件压缩和解压的示例代码
Aug 12 Python
python之pygame模块实现飞机大战完整代码
Nov 29 Python
在vscode中启动conda虚拟环境的思路详解
Dec 25 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
PHP5中的this,self和parent关键字详解教程
2007/03/19 PHP
PHP 执行系统外部命令 system() exec() passthru()
2009/08/11 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
2016/05/20 PHP
laravel ORM 只开启created_at的几种方法总结
2018/01/29 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
2018/06/05 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
2020/08/17 PHP
JS中剪贴板兼容性、判断复制成功或失败
2021/03/09 Javascript
ExtJS 简介 让你知道extjs是什么
2008/12/29 Javascript
JQuery AJAX提交中文乱码的解决方案
2010/07/02 Javascript
ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList
2012/02/03 Javascript
web前端设计师们常用的jQuery特效插件汇总
2014/12/07 Javascript
js实现从数组里随机获取元素
2015/01/12 Javascript
javascript实现的简单计时器
2015/07/19 Javascript
使用jQuery在移动页面上添加按钮和给按钮添加图标
2015/12/04 Javascript
javascript性能优化之DOM交互操作实例分析
2015/12/12 Javascript
BootStrap实现树形目录组件代码详解
2016/06/21 Javascript
jquery实现点击页面回到顶部
2016/11/23 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
d3.js中冷门却实用的内置函数总结
2017/02/04 Javascript
微信小程序 按钮滑动的实现方法
2017/09/27 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
2017/11/27 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
详解React之key的使用和实践
2018/09/29 Javascript
详解JS判断页面是在手机端还是在PC端打开的方法
2019/04/26 Javascript
JavaScript语句错误throw、try及catch实例解析
2020/08/18 Javascript
[01:59][TI9趣味视频] 全明星赛奖励
2019/08/23 DOTA
Python Tkinter GUI编程入门介绍
2015/03/10 Python
在Python中关于中文编码问题的处理建议
2015/04/08 Python
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
为什么从Python 3.6开始字典有序并效率更高
2019/07/15 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
使用python快速在局域网内搭建http传输文件服务的方法
2019/11/14 Python
python读写Excel表格的实例代码(简单实用)
2019/12/19 Python
收藏!10个免费高清视频素材网站!【设计、视频剪辑必备】
2021/03/18 杂记
施工员岗位职责
2014/03/16 职场文书
物流专业求职信
2014/06/30 职场文书