Python实现对一个IP地址和端口号列表进行nmap扫描

news2024/11/26 3:34:20

一.功能目的

使用python实现对一个IP地址和端口号列表进行nmap扫描

二.功能调研

根据查找得知我们需要用到python的subprocess库

1.代码示例

以下是搜到的简单的subprocess库代码

import subprocess  
  
result = subprocess.run(['ls', '-l'], capture_output=True, text=True)  
print(result.stdout)  # 输出命令的标准输出  
print(result.returncode)  # 输出命令的返回码

subprocess.run()执行了ls -l命令,并将输出捕获到result.stdout中。

text=True参数确保输出以字符串形式返回,而不是字节串。

打印命令的输出和返回码。

三.编写代码

 

1.分析传入数据并处理

targets = [
    '188.95.150.209_62078', '45.251.72.198_110', '68.1.98.194_7547', '46.175.247.85_22', '18.236.220.111_6036',
]

我们传入的ip和端口是一个列表targets,其中包含多个字符串,每个字符串代表一个IP地址和端口号,两者之间用下划线_分隔。

首先需要处理ip和port

for target in targets:
    ip, port = target.split('_')  # 分割IP地址和端口号

对于列表中的每个目标(即每个IP地址和端口号的组合),代码使用split('_')方法将字符串分割为两部分:IP地址和端口号。

2.构造nmap命令

用于扫描指定的IP地址和端口号。

nmap_command = ['nmap', '-sU', '-p', port, ip]
  • -sU:表示进行UDP扫描。
  • -p:后面跟的是要扫描的端口号。
  • portip是从目标字符串中提取的变量。

3.调用subprocess.run()方法

result = subprocess.run(nmap_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)

使用subprocess.run()方法执行nmap命令,并将标准输出(stdout)和标准错误(stderr)重定向到管道(PIPE)。text=True参数确保输出以字符串形式返回,而不是字节串。

再打印这些信息

3.以下是整套代码

import subprocess

# IP地址和端口号的列表
targets = [
    '188.95.150.209_62078', '45.251.72.198_110', '68.1.98.194_7547', '46.175.247.85_22', '18.236.220.111_6036',
]

# 遍历目标列表并执行nmap扫描
for target in targets:
    ip, port = target.split('_')  # 分割IP地址和端口号
    # 构造nmap命令
    nmap_command = ['nmap', '-sU', '-p', port, ip]
    # 执行命令并获取输出
    result = subprocess.run(nmap_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
    # 打印输出
    print(f"Scan results for {ip}:{port}:")
    print(result.stdout)
    print(result.stderr)  # 打印任何错误信息
    print("------------------------------------")

4.运行结果

总结

本文主要讲了使使用python实现对一个IP地址和端口号列表进行nmap扫描,后续会持续补充,欢迎关注!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1587838.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Code开发Django_模版和CSS

转到定义 和 查看定义 在使用Django或任何其他库的过程中,我们可能需要检查这些库中的代码。VS Code提供了两个方便的命令,可以直接导航到任何代码中的类和其他对象的定义: 转到定义 在Python开发环境中,我们可以轻松地对函数、类或者其他导入模块中的成员使用“Go to Def…

嵌入式学习50-单片机3

知识散记: 1. xdata 开到扩展内存 2.memcpy 内存拷贝 1、什么是并行通信、串行通信? 并行通信: …

DS18B20与单片机的通信、DS18B20采集温度、MODBUS协议、练习框架

我要成为嵌入式高手之4月9日51单片机第四天!! ———————————————————————————— DS18B20温度传感器 单总线数字温度计 异步的半双工的串行通信 测量范围从-55℃ ~ 125℃,增量值为0.5℃ 要用DS18B20采集温度&am…

远程控制软件免费

远程控制软件免费:选择、价值与安全性探讨 随着科技的进步和互联网的普及,远程控制软件在日常生活和工作中的应用越来越广泛。这类软件允许用户通过网络远程访问和控制另一台计算机,为远程办公、技术支持和在线教育等提供了极大的便利。本文…

Java中双重检查锁(double checked locking)

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 双重检查锁&#x…

电脑硬件 - 内存

内存,是一台电脑的CPU与硬盘间数据交互的中转站。不稳定的内存时常会导致蓝屏,黑屏,死机,甚至电脑无法亮机。 在电脑工作中,CPU和硬盘间无时无刻地进行着大量的数据交互。为了保证软件流畅正常运行,会在中…

大厂Java笔试题之与7有关的数

题目:输出 1到n之间 的与 7 有关数字的个数。 一个数与7有关是指这个数是 7 的倍数,或者是包含 7 的数字(如 17 ,27 ,37 ... 70 ,71 ,72 ,73...) 比如输入20,…

游戏测试审表流程

备注:本文为博主原创文章,未经博主允许禁止转载。如有问题,欢迎指正。 个人笔记(整理不易,有帮助,收藏+点赞+评论,爱你们!!!你的支持是我写作的动力) 笔记目录:笔记本~笔记目录_airtest和selenium那个好用-CSDN博客 个人随笔:工作总结随笔_8、以前工作中都接触过哪…

【黑马头条】-day06自媒体文章上下架-Kafka

文章目录 今日内容1 Kafka1.1 消息中间件对比1.2 kafka介绍1.3 kafka安装及配置1.4 kafka案例1.4.1 导入kafka客户端1.4.2 编写生产者消费者1.4.3 启动测试1.4.4 多消费者启动 1.5 kafka分区机制1.5.1 topic剖析 1.6 kafka高可用设计1.7 kafka生产者详解1.7.1 同步发送1.7.2 异…

吴恩达机器学习笔记:第 7 周-12支持向量机(Support Vector Machines)12.1-12.3

目录 第 7 周 12、 支持向量机(Support Vector Machines)12.1 优化目标12.2 大边界的直观理解 第 7 周 12、 支持向量机(Support Vector Machines) 12.1 优化目标 到目前为止,你已经见过一系列不同的学习算法。在监督学习中,许多学习算法的性能都非常类似&#xf…

【Python】python学生体能考核成绩管理系统(数据库) (源码+报告)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

新版chrome 解决在http协议下无法调用摄像头和麦克风的问题(不安全)

解决办法:亲测可行 chrome浏览器地址栏中输入chrome://flags/#unsafely-treat-insecure-origin-as-secure,回车,如下图,将该选项置为Enabled, edge浏览器打开:edge://flags/#unsafely-treat-insecure-orig…

linux文件访问权限理解

目录 一,涉及指令: 二,权限的表示 三,权限命令使用 一,涉及指令: umask chmod chown/chgrp 二,权限的表示 rwx rwx r-x含义: 访问方式: r-可读;w-可写;x-可执行; 访问用户:u-所有者;…

最新Android Studio导入aar包的方法

以前的方式,目前看网上也大多数都是这种方式,导致我本地加的时候一直有问题 但是这样都无法sync以及编译通过,因为方式已经变了 1:将aar文件复制到MyApplication\app\libs下 2:在MyApplication\app\build.gradle下添加…

LLM大语言模型助力DataEase小助手,新增气泡地图,DataEase开源数据可视化分析平台v2.5.0发布

2024年4月8日,DataEase开源数据可视化分析平台正式发布v2.5.0版本。 这一版本的功能升级包括:新增DataEase小助手支持,通过结合智能算法和LLM(即Large Language Model,大语言模型)能力,DataEas…

Python(9):一文学懂进程,线程和协程

文章目录 一、进程1.创建多进程2.查看进程id3.进程池4.进程间的互相通信 二、线程1.threading线程模块2.创建多线程3.互斥锁4.死锁5.线程间的互相通信 三、协程1.认识协程2.gevent模块在爬虫中的应用 四、多线程、多进程、协程的区别 分类定义程序一个应用可以当做一个程序&…

广佛站点导航助手小程序产品使用说明书

一、产品简介 广佛站点导航助手小程序是一款专为广佛地区用户设计的地铁导航工具。通过获取用户的实时位置信息,小程序能够迅速定位并展示离用户最近的三个地铁站点。用户可以通过本小程序轻松查找地铁站点,规划出行路线,提高出行效率。 二、…

STM32 串口接收定长,不定长数据

本文为大家介绍如何使用 串口 接收定长 和 不定长 的数据。 文章目录 前言一、串口接收定长数据1. 函数介绍2.代码实现 二、串口接收不定长数据1.函数介绍2. 代码实现 三,两者回调函数的区别比较四,空闲中断的介绍总结 前言 一、串口接收定长数据 1. 函…

计算机网络——网络地址转换(NAT)技术

目录 前言 前篇 引言 SNAT(Source Network Address Translation)源网络地址转换 SNAT流程 确定性标记 DNAT(Destination Network Address Translation,目标网络地址转换) NAT技术重要性 前言 本博客是博主用于…

Docker学习笔记(二):在Linux中部署Docker(Centos7下安装docker、环境配置,以及镜像简单使用)

一、前言 记录时间 [2024-4-6] 前置文章:Docker学习笔记(一):入门篇,Docker概述、基本组成等,对Docker有一个初步的认识 在上文中,笔者进行了Docker概述,介绍其历史、优势、作用&am…