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中marshal对象序列化的相关知识
Jul 01 Python
pytorch 把MNIST数据集转换成图片和txt的方法
May 20 Python
python实现根据指定字符截取对应的行的内容方法
Oct 23 Python
CentOS下Python3的安装及创建虚拟环境的方法
Nov 28 Python
python3使用pandas获取股票数据的方法
Dec 22 Python
python ipset管理 增删白名单的方法
Jan 14 Python
python自制包并用pip免提交到pypi仅安装到本机【推荐】
Jun 03 Python
解决python多行注释引发缩进错误的问题
Aug 23 Python
python将字符串转变成dict格式的实现
Nov 18 Python
解决pytorch报错:AssertionError: Invalid device id的问题
Jan 10 Python
Python logging模块进行封装实现原理解析
Aug 07 Python
详解Pycharm与anaconda安装配置指南
Aug 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
PHP 命名空间实例说明
2011/01/27 PHP
golang与PHP输出excel示例
2016/07/22 PHP
js动态为代码着色显示行号
2013/05/29 Javascript
JavaScript中的连字符详解
2013/11/28 Javascript
使用node.js 制作网站前台后台
2014/11/13 Javascript
jQuery判断元素上是否绑定了指定事件的方法
2015/03/17 Javascript
原生JS实现响应式瀑布流布局
2015/04/02 Javascript
jQuery与getJson结合的用法实例
2015/08/07 Javascript
几行js代码实现自适应
2017/02/24 Javascript
基于React+Redux的SSR实现方法
2018/07/03 Javascript
angularjs的单选框+ng-repeat的实现方法
2018/09/12 Javascript
深入理解react 组件类型及使用场景
2019/03/07 Javascript
微信小程序websocket实现即时聊天功能
2019/05/21 Javascript
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
js实现倒计时秒杀效果
2020/03/25 Javascript
ssm+vue前后端分离框架整合实现(附源码)
2020/07/08 Javascript
python中的字典详细介绍
2014/09/18 Python
Python编写屏幕截图程序方法
2015/02/18 Python
python+selenium识别验证码并登录的示例代码
2017/12/21 Python
python版本五子棋的实现代码
2018/12/11 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
2019/04/29 Python
Python基础知识点 初识Python.md
2019/05/14 Python
python pycharm最新版本激活码(永久有效)附python安装教程
2020/09/18 Python
Python实现序列化及csv文件读取
2020/01/19 Python
python中字典增加和删除使用方法
2020/09/30 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
matplotlib绘制正余弦曲线图的实现
2021/02/22 Python
DHC中国官方购物网站:日本通信销售No.1化妆品
2016/08/20 全球购物
环境工程大学生个人的自我评价
2013/10/08 职场文书
开学寄语大全
2014/04/08 职场文书
抵押贷款承诺书
2014/05/30 职场文书
2014年团支部年度工作总结
2014/12/24 职场文书
老公保证书怎么写
2015/02/26 职场文书
仰望星空观后感
2015/06/10 职场文书
行政复议答复书
2015/07/01 职场文书
Pytorch GPU内存占用很高,但是利用率很低如何解决
2021/06/01 Python