python扫描端口

2023-05-16

什么是端口扫描
定义:对一段端口或指定的端口进行扫描。

目的:通过扫描结果可以知道一台计算机上都提供了哪些服务,然后就可以通过所提供的这些服务的己知漏洞就可进行攻击。

原理:当一个主机向远端一个服务器的某一个端口提出建立一个连接的请求,如果对方有此项服务,就会应答,如果对方未安装此项服务时,即使你向相应的端口发出请求,对方仍无应答。

利用:对所有熟知端口或自己选定的某个范围内的熟知端口分别建立连接,并记录下远端服务器所给予的应答,便可知道哪些端口是开放的。

Python Socket实现端口扫描器

原理:socket.connect_ex((ip, port)),端口开放则返回0,否则返回错误代码


from os import name
import threading
from socket import *
import tqdm  # 进度条,可自行加上

lock = threading.Lock()  # 确保 多个线程在共享资源的时候不会出现脏数据
openNum = 0  # 端口开放数量统计
threads = []  # 线程池


def portscanner(host, port):
    global openNum
    try:
        s = socket(AF_INET, SOCK_STREAM)
        s.connect((host, port))
        lock.acquire()
        openNum += 1
        print(f"{port} open")
        lock.release()
        s.close()
    except:
        pass


def main(ip, ports=range(65535)):  # 设置 端口缺省值0-65535
    setdefaulttimeout(1)
    for port in ports:
        t = threading.Thread(target=portscanner, args=(ip, port))
        threads.append(t)
        t.start()
    for t in threads:
        t.join()
    print(f"PortScan is Finish ,OpenNum is {openNum}")


if __name__ == '__main__':
    ip = '113.12.192.90'
    # main(ip,[22,101,8080,8000])          # 输入端口扫描
    main(ip)  # 全端口扫描  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python扫描端口 的相关文章

随机推荐

  • STM32基于FreeRTOS的多任务程序

    目录 任务要求FreeRTOS移植介绍应用 任务要求 在STM32下完成一个基于FreeRTOS的多任务程序 xff0c 执行3个周期性task task1 xff0c 每间隔500ms闪烁 xff08 变化 xff09 一次LED xff
  • 如何判断两个ip是否属于同一子网;如何确定子网掩码,让300台服务器处于同一网段

    一 什么是子网掩码 xff1f 在了解ip地址的网段之前 xff0c 我们先来了解子网掩码 xff0c 很多对网络了解不深的朋友都对子网掩码有些迷惑 xff0c 不了解它是用来干什么的 xff1f 子网掩码不能单独存在 xff0c 它必须结
  • 刷leetcode常用的一些库函数

    1 比较两个数大小 xff0c 求出更大的数或者更小的数 Math max a b Math min a b 2 批量化初始数组 当然 xff0c 你遍历一遍一个一个赋值也可以 Arrays fill nums 1 如果是二维数组 xff0
  • k8s中configmap挂载配置nginx.conf

    ConfigMap ConfigMap作用是存储不加密的数据到etcd中 xff0c 让Pod以变量或数据卷Volume挂载到容器中 应用场景 xff1a 配置文件 创建配置文件 首先我们需要创建一个配置文件 nginx conf user
  • k8s监控prometheus+Grafana

    Kubernetes集群资源监控 概述 监控指标 一个好的系统 xff0c 主要监控以下内容 集群监控 节点资源利用率节点数运行PodsPod监控 容器指标应用程序 程序占用多少CPU 内存 监控平台 使用普罗米修斯 prometheus
  • python学习(猜数字游戏)

    import random x 61 int random randint 0 10 i 61 1 print 39 39 39 欢迎进入猜数字小游戏 xff01 本次游戏机会只有三次 xff01 小伙伴拼手气的机会到了哟 xff01 39
  • python脚本批量创建job并自动添加视图

    由于我们项目jenkinsfile和deployment yaml都是单独分开放在git仓库上管理的 xff0c 脚本实现的是通过批量创建对应的文件和job任务自动提交git仓库 xff0c 并把job加入到视图里 xff01 话不多说贴脚
  • 远程登陆Ubuntu服务器anaconda的使用问题(多用户)

    远程登录Ubuntu的新用户在使用 conda 命令时 xff0c 可能会遇到找不到 conda 命令的情况 xff0c 因此在多用户使用 anaconda 的情况下 xff0c 需要提前在 Ubuntu 服务器上做一下 anaconda
  • telnet批量检查端口是否正常

    一 本机测试目标端口是否正常 xff1a python调用的socket模块来实现 xff1a usr bin python3 import socket ip 43 port 描述 ip prot 61 39 39 39 0 0 0 0
  • mongo副本集一主两从读写分离部署

    mongodb 副本集部署 mongodb 0 gt 3717 mongodb 1 gt 3718 mongodb 2 gt 3719 wget https fastdl mongodb org linux mongodb linux x8
  • 二进制部署mongodb_exporter

    一 先安装部署好prometheus和grafana 二 部署exporter客户端 1 下载软件mongodb下载地址 xff08 grafana模板选择2583 xff09 版本选择0 11 2的 xff0c 不然和模板的语句prome
  • rocketmq二进制2m-2s异步集群部署

    一 机器规划 第一台机器 192 168 20 101 端口规划 xff1a 9876 NameServer1 10910 BrokerA master 10921 BrokerB slave 第二台机器 192 168 20 102 端口
  • Linux(Ubuntu系统)安装unzip

    最近在阿里云服务器上下载了zip形式的数据集压缩包 xff0c 解压时却发现并没有unzip解压命令 xff0c 于是习惯性地pip install unzip xff0c 并不能成功 xff0c 网上很多方法都说运行 sudo apt g
  • Python问题&解决

    python pycharm小技巧 1 要学会使用Debug pycharm Debug使用 Debug记得打断点 xff01 Pycharm debug技巧 在debug的时候python console可以直接敲变量显示 在安装Pych
  • Linux系统安装ClamAV的详细步骤

    ClamAV是一款开源免费的杀毒软件 xff0c 它可以在Linux系统上运行 以下是在Linux系统上安装ClamAV的步骤 xff1a 打开终端并更新软件包列表 xff1a sudo apt update 安装ClamAV xff1a
  • 为什么 0.1 + 0.2 不等于0.3?如何解决这个问题?

    一 开头 我们都知道0 1 43 0 2 61 61 0 3 xff0c 而是0 30000000000000004 xff0c 那么是为什么 xff1f 我们都知道计算机在内部实现中使用的是二进制 xff0c 0 1也是不例外的 xff0
  • 前端手写(十八)——Promise并行限制

    一 写在前面 一般我们做多个异步请求 xff0c 此时我们常常采用的是Promise all来进行处理 xff0c Promise all会全部的一起执行 xff0c 但是如果存在一些并行的限制 xff0c 也就是说一次最多只能执行固定的数
  • 深度学习环境安装(VMware)-Miniconda-pytorch

    提示 xff1a 最近要要跑一些算法 xff0c 用的linux系统一直是在服务器上进行开发 xff08 无GUI界面 xff09 xff0c 双系统又懒得开关机 xff0c 虚拟机还不能调用gpu xff0c 真无了个大语 对于文章中出现
  • novnc安装

    ubuntu22 04 span class token comment 安装软件 span span class token function sudo span span class token function apt span sp
  • python扫描端口

    什么是端口扫描 定义 xff1a 对一段端口或指定的端口进行扫描 目的 xff1a 通过扫描结果可以知道一台计算机上都提供了哪些服务 xff0c 然后就可以通过所提供的这些服务的己知漏洞就可进行攻击 原理 xff1a 当一个主机向远端一个服