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编程中包的概念与管理
Oct 16 Python
利用Python学习RabbitMQ消息队列
Nov 30 Python
python实现批量按比例缩放图片效果
Mar 30 Python
python实现校园网自动登录的示例讲解
Apr 22 Python
python中不能连接超时的问题及解决方法
Jun 10 Python
python opencv 二值化 计算白色像素点的实例
Jul 03 Python
Python脚本利用adb进行手机控制的方法
Jul 08 Python
利用python开发app实战的方法
Jul 09 Python
django 信号调度机制详解
Jul 19 Python
查看已安装tensorflow版本的方法示例
Apr 19 Python
python实现图片批量压缩
Apr 24 Python
如何在C++中调用Python
May 21 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
js和php邮箱地址验证的实现方法
2014/01/09 PHP
ThinkPHP调用百度翻译类实现在线翻译
2014/06/26 PHP
php递归实现无限分类的方法
2015/07/28 PHP
JavaScript版代码高亮
2006/06/26 Javascript
JS 对象介绍
2010/01/20 Javascript
js实现兼容IE6与IE7的DIV高度
2010/05/13 Javascript
ExtJs GridPanel简单的增删改实现代码
2010/08/26 Javascript
jQuery右键菜单contextMenu使用实例
2011/09/28 Javascript
javascript的创建多行字符串的7种方法
2014/04/29 Javascript
js父窗口关闭时子窗口随之关闭完美解决方案
2014/04/29 Javascript
我的Node.js学习之路(二)NPM模块管理
2014/07/06 Javascript
JS简单操作select和dropdownlist实例
2014/11/26 Javascript
jQuery手机浏览器中拖拽动作的艰难性分析
2015/02/04 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
2015/03/18 Javascript
JQuery实现鼠标滚轮滑动到页面节点
2015/07/28 Javascript
html5+javascript实现简单上传的注意细节
2016/04/18 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
2017/01/05 Javascript
基于js中style.width与offsetWidth的区别(详解)
2017/11/12 Javascript
Vue中对比scoped css和css module的区别
2018/05/17 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
ES2020让代码更优美的运算符 (?.) (??)
2021/01/04 Javascript
node脚手架搭建服务器实现token验证的方法
2021/01/20 Javascript
[48:00]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第二场 11.04
2020/11/04 DOTA
opencv设置采集视频分辨率方式
2019/12/10 Python
Python小整数对象池和字符串intern实例解析
2020/03/21 Python
CSS3 文字动画效果
2020/11/12 HTML / CSS
Gtech官方网站:地毯清洁器、吸尘器及园艺设备
2018/05/23 全球购物
Exception类的常用方法
2012/06/16 面试题
UNIX特点都有哪些
2016/04/05 面试题
兼职学生的自我评价
2013/11/24 职场文书
一年级数学教学反思
2014/02/01 职场文书
幼儿评语大全
2014/04/30 职场文书
行政管理专业求职信
2014/07/06 职场文书
学校标语口号大全
2015/12/26 职场文书
使用CSS实现黑白格背景效果
2022/06/01 HTML / CSS