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 相关文章推荐
python33 urllib2使用方法细节讲解
Dec 03 Python
python实现简单socket通信的方法
Apr 19 Python
python 读写txt文件 json文件的实现方法
Oct 22 Python
Python中selenium实现文件上传所有方法整理总结
Apr 01 Python
在Django中URL正则表达式匹配的方法
Dec 20 Python
python实现统计文本中单词出现的频率详解
May 20 Python
python整合ffmpeg实现视频文件的批量转换
May 31 Python
python实现本地批量ping多个IP的方法示例
Aug 07 Python
使用Pandas的Series方法绘制图像教程
Dec 04 Python
tensorflow实现将ckpt转pb文件的方法
Apr 22 Python
基于Python 的语音重采样函数解析
Jul 06 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
Nov 17 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危险函数(disable_functions)
2012/02/23 PHP
PHP中设置时区,记录日志文件的实现代码
2013/01/07 PHP
一个漂亮的php验证码类(分享)
2013/08/06 PHP
JavaScript函数、方法、对象代码
2008/10/29 Javascript
juqery 学习之三 选择器 子元素与表单
2010/11/25 Javascript
Javascript面向对象之四 继承
2011/02/08 Javascript
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
2013/11/18 Javascript
javascript结合ajax读取txt文件内容
2014/12/05 Javascript
jQuery提示插件alertify使用指南
2015/04/21 Javascript
jQuery原生的动画效果
2015/07/10 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
详谈$.data()的用法和作用
2017/02/13 Javascript
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
nodejs中art-template模板语法的引入及冲突解决方案
2017/11/07 NodeJs
使用react context 实现vue插槽slot功能
2019/07/18 Javascript
Django日志模块logging的配置详解
2017/02/14 Python
Numpy 将二维图像矩阵转换为一维向量的方法
2018/06/05 Python
在python中bool函数的取值方法
2018/11/01 Python
Python正则表达式实现简易计算器功能示例
2019/05/07 Python
Django对models里的objects的使用详解
2019/08/17 Python
浅谈TensorFlow中读取图像数据的三种方式
2020/06/30 Python
python不同版本的_new_不同点总结
2020/12/09 Python
5分钟快速掌握Python定时任务框架的实现
2021/01/26 Python
德国EGOIST网店:销售畅销的设计师品牌
2017/04/18 全球购物
巴西购物网站:Onofre Agora
2020/06/08 全球购物
村优秀党员事迹材料
2014/01/15 职场文书
科技开发中心办公室主任岗位责任制
2014/02/10 职场文书
大学生个人求职口试自我评价
2014/02/16 职场文书
《学会合作》教学反思
2014/04/12 职场文书
银行青年文明号事迹材料
2014/05/31 职场文书
机械电子工程专业求职信
2014/06/22 职场文书
股东授权委托书范本
2014/09/13 职场文书
教师师德师风自我剖析材料
2014/09/29 职场文书
预备党员考察意见范文
2015/06/01 职场文书
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
2021/06/13 Python
Spring Bean的实例化之属性注入源码剖析过程
2021/06/13 Java/Android