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 实现插入排序算法
Jun 05 Python
python3.3使用tkinter开发猜数字游戏示例
Mar 14 Python
浅析Python中signal包的使用
Nov 13 Python
Flask的图形化管理界面搭建框架Flask-Admin的使用教程
Jun 13 Python
Python实现基本线性数据结构
Aug 22 Python
Python实现PS滤镜碎片特效功能示例
Jan 24 Python
python使用xlrd和xlwt读写Excel文件的实例代码
Sep 05 Python
新年快乐! python实现绚烂的烟花绽放效果
Jan 30 Python
如何使用Python破解ZIP或RAR压缩文件密码
Jan 09 Python
Python中三维坐标空间绘制的实现
Sep 22 Python
Python3 如何开启自带http服务
May 18 Python
python基础学习之递归函数知识总结
May 26 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
解密ThinkPHP3.1.2版本之独立分组功能应用
2014/06/19 PHP
深入浅析php json 格式控制
2015/12/24 PHP
PHP实现导出excel数据的类库用法示例
2016/10/15 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
javascript使用activex控件的代码
2011/01/27 Javascript
treepanel动态加载数据实现代码
2012/12/15 Javascript
JavaScript自定义日期格式化函数详细解析
2014/01/14 Javascript
浅谈angularJS中的事件
2016/07/12 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
Vue.js常用指令汇总(v-if、v-for等)
2016/11/03 Javascript
Javascript中构造函数要注意的一些坑
2017/01/23 Javascript
基于jQuery实现图片推拉门动画效果的两种方法
2017/08/26 jQuery
JavaScrip数组删除特定元素的几种方法总结
2017/09/06 Javascript
浅谈在koa2中实现页面渲染的全局数据
2017/10/09 Javascript
js实现动态改变radio状态的方法
2018/02/28 Javascript
在Vue项目中使用jsencrypt.js对数据进行加密传输的方法
2019/04/17 Javascript
vue+elementUI动态生成面包屑导航教程
2019/11/04 Javascript
Vue2.x和Vue3.x的双向绑定原理详解
2020/11/05 Javascript
python入门之语句(if语句、while语句、for语句)
2015/01/19 Python
用Python创建声明性迷你语言的教程
2015/04/13 Python
详解Python中如何写控制台进度条的整理
2018/03/07 Python
python书籍信息爬虫实例
2018/03/19 Python
Python3多目标赋值及共享引用注意事项
2019/05/27 Python
python中对数据进行各种排序的方法
2019/07/02 Python
selenium2.0中常用的python函数汇总
2019/08/05 Python
AUC计算方法与Python实现代码
2020/02/28 Python
通俗讲解python 装饰器
2020/09/07 Python
python安装cx_Oracle和wxPython的方法
2020/09/14 Python
中国电视购物:快乐购
2017/02/04 全球购物
牛津在线药房:Oxford Online Pharmacy
2020/11/16 全球购物
新西兰最大的天然保健及护肤品网站:HealthPost(直邮中国)
2021/02/13 全球购物
大学生自我评价怎样写好
2013/10/23 职场文书
清洁工表扬信
2014/01/08 职场文书
珍惜资源的建议书
2014/08/26 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
Oracle 11g数据库使用expdp每周进行数据备份并上传到备份服务器
2022/06/28 Oracle