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 相关文章推荐
easy_install python包安装管理工具介绍
Feb 10 Python
python连接池实现示例程序
Nov 26 Python
Python中使用ElementTree解析XML示例
Jun 02 Python
python检查字符串是否是正确ISBN的方法
Jul 11 Python
Django中的“惰性翻译”方法的相关使用
Jul 27 Python
Python中你应该知道的一些内置函数
Mar 31 Python
python安装教程 Pycharm安装详细教程
May 02 Python
python实现ID3决策树算法
Dec 20 Python
django 环境变量配置过程详解
Aug 06 Python
python 爬虫百度地图的信息界面的实现方法
Oct 27 Python
Python切片列表字符串如何实现切换
Aug 06 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
Oct 15 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
实例:尽可能写友好的Javascript代码
2006/10/09 Javascript
JavaScript经典效果集锦
2010/07/06 Javascript
js 距离某一时间点时间是多少实现代码
2013/10/14 Javascript
Javascript 运动中Offset的bug解决方案
2014/12/24 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
2017/01/05 Javascript
vuejs父子组件通信的问题
2017/01/11 Javascript
vue中使用input[type="file"]实现文件上传功能
2018/09/10 Javascript
swiper在vue项目中loop循环轮播失效的解决方法
2018/09/15 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
2019/07/23 Javascript
javascript设计模式 ? 迭代器模式原理与用法实例分析
2020/04/17 Javascript
在Vue 中实现循环渲染多个相同echarts图表
2020/07/20 Javascript
[03:14]DOTA2斧王 英雄基础教程
2013/11/26 DOTA
Python 文件管理实例详解
2015/11/10 Python
关于Python如何避免循环导入问题详解
2017/09/14 Python
用TensorFlow实现lasso回归和岭回归算法的示例
2018/05/02 Python
python实现简单的文字识别
2018/11/27 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
2019/08/30 Python
基于Python生成个性二维码过程详解
2020/03/05 Python
Python Dict找出value大于某值或key大于某值的所有项方式
2020/06/05 Python
Keras自定义实现带masking的meanpooling层方式
2020/06/16 Python
keras:model.compile损失函数的用法
2020/07/01 Python
HTML文本属性&颜色控制属性的实现
2019/12/17 HTML / CSS
斯凯奇美国官网:SKECHERS美国
2016/08/20 全球购物
项目开发计划书
2014/01/09 职场文书
幼儿园托班开学寄语
2014/01/18 职场文书
元旦寄语大全
2014/04/10 职场文书
党员志愿者活动总结
2014/06/26 职场文书
英文感谢信范文
2015/01/21 职场文书
大学感恩节活动总结
2015/05/05 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书
让人瞬间清醒的句子,句句经典,字字如金
2019/07/08 职场文书
JS setTimeout与setInterval的区别
2022/04/20 Javascript