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实现SVM算法
Dec 27 Python
python使用pandas实现数据分割实例代码
Jan 25 Python
win10 64bit下python NLTK安装教程
Sep 19 Python
Python 变量类型详解
Oct 10 Python
Python解析、提取url关键字的实例详解
Dec 17 Python
pycharm打开命令行或Terminal的方法
Jan 16 Python
Django框架ORM数据库操作实例详解
Nov 07 Python
Python 之 Json序列化嵌套类方式
Feb 27 Python
python selenium自动化测试框架搭建的方法步骤
Jun 14 Python
Python模拟伯努利试验和二项分布代码实例
May 27 Python
Python函数调用追踪实现代码
Nov 27 Python
python实现三种随机请求头方式
Jan 05 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/03/24 PHP
在PHP中利用wsdl创建标准webservice的实现代码
2011/12/07 PHP
php curl 上传文件代码实例
2015/04/27 PHP
php创建无限级树型菜单
2015/11/05 PHP
Joomla语言翻译类Jtext用法分析
2016/05/05 PHP
php压缩文件夹最新版
2018/07/18 PHP
通过JAVAScript实现页面自适应
2007/01/19 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
JavaScript中创建对象和继承示例解读
2014/02/12 Javascript
jquery高级编程的最佳实践详解
2014/03/23 Javascript
jQuery插件jFade实现鼠标经过的图片高亮其它变暗
2015/03/14 Javascript
jQuery处理图片加载失败的常用方法
2015/06/08 Javascript
javascript简单实现类似QQ头像弹出效果的方法
2015/08/03 Javascript
smartcrop.js智能图片裁剪库
2015/10/14 Javascript
详解JavaScript语言的基本语法要求
2015/11/20 Javascript
通过JS和PHP两种方法判断用户请求时使用的浏览器类型
2016/09/01 Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
2016/11/21 Javascript
jquery购物车结算功能实现方法
2020/10/29 Javascript
hovertree插件实现二级树形菜单(简单实用)
2016/12/28 Javascript
AngularJS路由删除#符号解决的办法
2017/09/28 Javascript
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
2018/02/11 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
2018/03/02 Javascript
详解基于node.js的脚手架工具开发经历
2019/01/28 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
记录一次websocket封装的过程
2020/11/23 Javascript
python数字图像处理之高级形态学处理
2018/04/27 Python
解决python多线程报错:AttributeError: Can't pickle local object问题
2020/04/08 Python
numpy的Fancy Indexing和array比较详解
2020/06/11 Python
CSS3 Media Queries详细介绍和使用实例
2014/05/08 HTML / CSS
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
2013/03/25 HTML / CSS
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
税务专业毕业生自荐信
2013/11/10 职场文书
财务部经理岗位职责
2014/02/03 职场文书
领导干部群众路线个人对照检查材料思想汇报
2014/09/30 职场文书
社区党建工作总结2015
2015/05/13 职场文书