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和GO语言实现的消息摘要算法示例
Mar 10 Python
Python针对给定列表中元素进行翻转操作的方法分析
Apr 27 Python
Django处理文件上传File Uploads的实例
May 28 Python
Python 比较文本相似性的方法(difflib,Levenshtein)
Oct 15 Python
python用fsolve、leastsq对非线性方程组求解
Dec 15 Python
python 内置函数汇总详解
Sep 16 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
Oct 06 Python
利用python实现AR教程
Nov 20 Python
python实现的分析并统计nginx日志数据功能示例
Dec 21 Python
Python Django view 两种return的实现方式
Mar 16 Python
Pyinstaller打包Scrapy项目的实现步骤
Sep 22 Python
python 写一个性能测试工具(一)
Oct 24 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
一个简单计数器的源代码
2006/10/09 PHP
计算2000年01月01日起到指定日的天数
2006/10/09 PHP
php表单转换textarea换行符的方法
2010/09/10 PHP
深入php self与$this的详解
2013/06/08 PHP
php+jQuery.uploadify实现文件上传教程
2014/12/26 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
2019/05/09 PHP
php输出反斜杠的实例方法
2019/09/19 PHP
jquery 新手学习常见问题解决方法
2010/04/18 Javascript
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
2012/02/03 Javascript
js中window.open()的所有参数详细解析
2014/01/09 Javascript
JavaScript字符串对象charAt方法入门实例(用于取得指定位置的字符)
2014/10/17 Javascript
JavaScript数据类型检测代码分享
2015/01/26 Javascript
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
DOM中事件处理概览与原理的全面解析
2016/08/16 Javascript
纯JS打造网页中checkbox和radio的美化效果
2016/10/13 Javascript
jQuery事件对象总结
2016/10/17 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
nodejs多版本管理总结
2018/04/03 NodeJs
通过一次报错详细谈谈Point事件
2018/05/17 Javascript
为什么推荐使用JSX开发Vue3
2020/12/28 Vue.js
[01:16]2014DOTA2 TI专访C9战队EE:中国五强中会占三席
2014/07/10 DOTA
[28:48]《真视界》- 2017年国际邀请赛
2017/09/27 DOTA
python中hashlib模块用法示例
2017/10/30 Python
python实现得到当前登录用户信息的方法
2019/06/21 Python
Python实现获取系统临时目录及临时文件的方法示例
2019/06/26 Python
Python如何筛选序列中的元素的方法实现
2019/07/15 Python
python爬虫增加访问量的方法
2019/08/22 Python
python的slice notation的特殊用法详解
2019/12/27 Python
Python学习笔记之装饰器
2020/08/06 Python
matplotlib 三维图表绘制方法简介
2020/09/20 Python
欧洲最大的品牌水上运动服装和设备在线零售商:Wuituit Outlet
2018/05/05 全球购物
工厂总经理岗位职责
2014/02/07 职场文书
分层教学实施方案
2014/03/19 职场文书
教师学习三严三实心得体会
2014/10/13 职场文书
2014年幼儿园教师工作总结
2014/11/08 职场文书
联想win10摄像头打不开怎么办?win10笔记本摄像头打不开解决办法
2022/04/08 数码科技