当前位置: 首页 > news >正文

通过python 获取当前局域网内存在的IP和MAC

通过python 获取当前局域网内存在的ip

'''
通过ipconfig /all 命令获取局域网所在的网段
通过arp -d *命令清空当前所有的arp映射表
循环遍历当前网段所有可能的ip与其ping一遍建立arp映射表
for /L %i IN (1,1,254) DO ping -w 1 -n 1 192.168.3.%i
通过arp -a命令读取缓存的映射表获取所有与本机连接的设备的Mac地址。
'''
import os
import re
import time
from concurrent.futures import ThreadPoolExecutor, wait, ALL_COMPLETED
import psutil# 逻辑cpu个数
count = psutil.cpu_count()
print("cpu个数:",str(count))
import pandas as pd
def get_net_segment():with os.popen("arp -a") as res:for line in res:line = line.strip()if line.startswith("接口"):net_segment = re.findall("(\d+\.\d+\.\d+)\.\d+", line)[0]breakreturn net_segment
def ping_net_segment_all(net_segment):# for i in range(1, 255):#     os.system(f"ping -w 1 -n 1 {net_segment}.{i}")# 多线程并发 5个线程时耗时是30秒,8个线程是28秒with ThreadPoolExecutor(max_workers=4) as executor:for i in range(1, 255):executor.submit(os.popen, f"ping -w 1 -n 1 {net_segment}.{i}")
def get_arp_ip_mac():header = Nonelist1 = []#os.system('arp -a > temp11.txt')with os.popen("arp -a") as res:for line in res:line = line.strip()         if not line or line.startswith("接口"):continueif header is None:                header = re.split(" {2,}", line.strip())line1 = re.split(" {2,}", line.strip())list1.append(line1)df = pd.DataFrame(list1,columns=header)return df
def ping_ip_list(ips, max_workers=4):print("正在扫描在线列表")with ThreadPoolExecutor(max_workers=max_workers) as executor:future_tasks = []for ip in ips:future_tasks.append(executor.submit(os.popen, f"ping -w 1 -n 1 {ip}"))wait(future_tasks, return_when=ALL_COMPLETED)
if __name__ == '__main__':# 是否进行初始扫描init_search = True #Falseif init_search:print("正在扫描当前网段所有ip,预计耗时1分钟....")ping_net_segment_all(get_net_segment())last = Nonewhile 1:df = get_arp_ip_mac()df = df.loc[df.类型 == "动态", ["Internet 地址", "物理地址"]]if last is None:print("当前在线的设备:")print(df)else:online = df.loc[~df.物理地址.isin(last.物理地址)]if online.shape[0] > 0:print("新上线设备:")print(online)offline = last[~last.物理地址.isin(df.物理地址)]if offline.shape[0] > 0:print("刚下线设备:")print(offline)time.sleep(5)ping_ip_list(df["Internet 地址"].values)last = df

相关文章:

通过python 获取当前局域网内存在的IP和MAC

通过python 获取当前局域网内存在的ip 通过ipconfig /all 命令获取局域网所在的网段 通过arp -d *命令清空当前所有的arp映射表 循环遍历当前网段所有可能的ip与其ping一遍建立arp映射表 for /L %i IN (1,1,254) DO ping -w 1 -n 1 192.168.3.%i 通过arp -a命令读取缓存的映射表…...

解决D盘的类型不是基本,而是动态的问题

一、正确的图片 1.1图片 1.2本人遇到的问题 二、将动态磁盘 转为基本盘 2.1 基本概念,动态无法转化为基本,不是双向的,借助软件 网址:转换动态磁盘到普通磁盘_检测到计算机本地磁盘为动态分区_卫水金波的博客-CSDN博客 2.2分区…...

如何判断自己的qt版本呢?

如何判断自己的qt版本呢? 前情提要很简单,按照如下图所示,即可查看当前打开的qtCreator的版本如何打开5.15.2版本的qtCreator呢?安装教程 前情提要 我的电脑已经安装了qt5.14.1,然后我又安装了qt5.15.2,我想尝试一下同一台电脑能否适应两个版本的qt? 当我安装完成qt5.15.2后…...

【文心一言大模型插件制作初体验】制作面试错题本大模型插件

文心一言插件开发初体验 效果图 注意:目前插件仅支持在本地运行,虽然只能自用,但仍然是一个不错的选择。(什么?你说没有用?这不可能!文心一言app可以支持语音,网页端结合手机端就可…...

ROS 2官方文档(基于humble版本)学习笔记(二)

ROS 2官方文档(基于humble版本)学习笔记(二) 理解节点(node)ros2 runros2 node list重映射(remap)ros2 node info 理解话题(topic)rqt_graphros2 topic listr…...

excel中公式结合实际的数据提取出公式计算的分支

要在Excel中使用公式结合实际数据提取分支信息,您可以使用一些文本函数和条件函数来实现这个目标。以下是一个示例,假设您有一个包含银行交易描述的列A,想要从中提取分支信息: 假设交易描述的格式是"分行名称-交易类型"…...

3D模型优化实战:LowPoly、纹理烘焙及格式转换

在快节奏的游戏和虚拟/增强现实 (VR/AR) 世界中,3D 模型的优化在提供引人入胜的体验方面发挥着关键作用。 这门学科不仅仅是创造令人着迷的图形结构; 这是视觉质量和游戏流畅性之间的平衡问题,确保细致而流畅的游戏环境。 通过低多边形建模等…...

genome comparison commend 2 MCMCtree

仅本人练习使用!!后续会逐渐修改!! mcmctree估算物种分歧时间 - 简书 https://www.cnblogs.com/bio-mary/p/12818888.html 估算系统树分歧时间 —— paml.mcmctree,r8s | 生信技工 http://www.chenlianfu.com/?p2948 4. 使用PAM…...

Linux安装JenkinsCLI

项目简介安装目录 mkdir -p /opt/jenkinscli && cd /opt/jenkinscli JenkinsCLI下载 wget http://<your-jenkins-server>/jnlpJars/jenkins-cli.jar # <your-jenkins-server> 替换为你的 Jenkins 服务器地址 JenkinsCLI授权 Dashboard-->Configure Glob…...

Midjourney学习(一)prompt的基础

prompt目录 sd和mj的比较prompt组成风格表现风格时代描述表情色彩情绪环境 sd和mj的比较 自从去年9月份开始&#xff0c;sd就变得非常或火&#xff0c;跟它一起的还有一个midjourney。 他们就像是程序界的两种模式&#xff0c;sd是开源的&#xff0c;有更多的可能性更可控。但是…...

12 权重衰退

过拟合的应对方法——weight_decay 权重衰退是最广泛使用的正则化方法之一。 模型容量受参数个数和参数范围影响&#xff0c;通过L2正则项限制w的取值范围&#xff0c;权重w每次更新乘以小于1的数&#xff0c;w的数值范围不会太大&#xff0c;从而降低模型复杂度&#xff0c;…...

简化测试流程,提供卓越服务:TestComplete+Salesforce满足不断发展的企业的需求

2015年&#xff0c;一群前Salesforce员工发现了病毒防护市场中的一个空白&#xff1a;Salesforce不会对文档进行威胁扫描。为了填补这一空白&#xff0c;他们创建了一个平台&#xff0c;并以该平台作为中心帮助公司保护所有的企业云SaaS系统&#xff0c;使其免受威胁。这个平台…...

kafka 命令脚本说明以及在java中使用

一、命令行使用 1.1、topic 命令 1、关于topic,这里用window 来示例 bin\windows\kafka-topics.bat2、创建 first topic,五个分区&#xff0c;1个副本 bin\windows\kafka-topics.bat --bootstrap-server localhost:9092 --create --partitions 5 --replication-factor 1 -…...

Qt应用开发(基础篇)——文件选择对话框 QFileDialog

一、前言 QFileDialog类继承于QDialog&#xff0c;提供了一个允许用户选择文件或目录的对话框。 对话框窗口 QDialog QFileDialog文件选择对话框允许用户在当前文件系统中选择一个或者多个文件或者文件路径&#xff0c;使用静态函数创建是很简便的方式&#xff0c;比如&#xf…...

图像OCR转文字,验证码识别技术太疯狂-UI软件自动化

现在用PYTHON识别图片文字&#xff0c;PaddleOCR&#xff0c;Tesseract,Opencv等很多开源技术。知识大爆炸年代&#xff0c;几年不学习就跟不上时代了。 以前早的时候一个验证码图片上有4个不同颜色字符&#xff0c;带一些杂点&#xff0c;我写点代码按颜色最多的进行提取&…...

Docker:自定义镜像

&#xff08;总结自b站黑马程序员课程&#xff09; 环环相扣&#xff0c;跳过部分章节和知识点是不可取的。 一、镜像结构 镜像是分层结构&#xff0c;每一层称为一个Layer。 ①BaseImage层&#xff1a;包含基本的系统函数库、环境变量、文件系统。 ②Entrypoint&#xff1…...

【Nginx22】Nginx学习:FastCGI模块(四)错误处理及其它

Nginx学习&#xff1a;FastCGI模块&#xff08;四&#xff09;错误处理及其它 FastCGI 最后一篇&#xff0c;我们将学习完剩下的所有配置指令。在这里&#xff0c;错误处理还是单独拿出来成为一个小节了&#xff0c;而剩下的内容都放到其它中进行学习。不要感觉是其它的就没用了…...

轮毂电机单位换算-米每秒/转每分

先前写了一篇度/S和RPM的关系 这次补全一点 假设轮毂电机直径20CM 0.2M 周长为0.628M 0.2*3.14 轮子转一圈走0.628M 1RPM的单位是转/分 换成转/S 就除以60 也就是轮子转一圈的速度0.628/60 m/S 0.010467m/S 所以换算如下: 1RPM0.010467 m/S 那么1m/S1/(0.010467) RPM95.5RPM 如…...

博流RISC-V芯片BL616开发环境搭建

文章目录 1、工具安装2、代码下载3、环境变量配置4、下载交叉编译器5、编译与下载运行6、使用ninja编译 本文分别介绍博流RISC-V芯片 BL616 在 Windows和Linux 下开发环境搭建&#xff0c;本文同时适用BL618&#xff0c;BL602&#xff0c;BL702&#xff0c;BL808系列芯片。 1、…...

Weblogic漏洞(三)之 Weblogic 弱口令、任意文件读取漏洞

Weblogic 弱口令、任意文件读取漏洞 环境安装 此次我们实验的靶场&#xff0c;是vnlhub中的Weblogic漏洞中的weak_password靶场&#xff0c;我们 cd 到weak_password&#xff0c;然后输入以下命令启动靶场环境&#xff1a; docker-compose up -d输入以下的命令可以查看当前启…...

基于AM62x核心板的微电网智能化改造:异构多核驱动与边缘计算实践

1. 项目概述&#xff1a;当嵌入式核心板遇上微电网最近在做一个挺有意思的项目&#xff0c;客户想把他们园区里那套老旧的微电网系统给“智能化”一下。原来的系统&#xff0c;说白了就是一堆继电器、PLC和工控机攒起来的&#xff0c;数据采集靠串口&#xff0c;控制逻辑写在梯…...

抖音批量下载终极指南:5分钟学会无水印视频下载与智能归档

抖音批量下载终极指南&#xff1a;5分钟学会无水印视频下载与智能归档 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback s…...

【VMware虚拟机】Linux下ubuntu连接网络详细讲解!

原理讲解 window上网需要网络适配器&#xff0c;通过家用路由器下发WLAN&#xff0c;自分配ip地址&#xff0c;连接即用 linux同理&#xff1a;在VMware虚拟机上需要”虚拟路由器“。对应为虚拟网络编辑器 1.打开虚拟网络编辑器 2.点击NAT&#xff0c;NAT模式和DHCP必须选上…...

安克创新推 Soundcore Liberty 5 Pro 系列耳机:AI 降噪+智能记录,续航与功能的新平衡

Soundcore Liberty 5 Pro 系列&#xff1a;AI 音频芯片带来降噪新体验安克创新推出 Soundcore Liberty Pro 真无线耳机的新版本——Liberty 5 Pro 及 Liberty 5 Pro Max。Liberty 5 Pro 是首款搭载 Thus AI 音频芯片的耳机&#xff0c;该芯片能增强降噪能力&#xff0c;让用户在…...

从AB类到C类:拆解Doherty功放里载波与峰值支路的相位“打架”问题及宽带补偿方案

从AB类到C类&#xff1a;拆解Doherty功放里载波与峰值支路的相位“打架”问题及宽带补偿方案 在射频功率放大器设计中&#xff0c;Doherty架构因其高效率特性而备受青睐。然而&#xff0c;当工程师们试图将这种架构扩展到更宽频带时&#xff0c;往往会遇到一个令人头疼的问题—…...

Worldquant研究顾问速通

几天时间速通拿了金牌&#xff0c;中间停了一两周&#xff0c;然后仔细研究了下&#xff0c;学了相关知识&#xff0c;搭建自己ai驱动的工作流后每天大约10分钟设置好任务&#xff0c;可探索到10来个可以提交的alpha&#xff0c;目前产出比大约在1/100&#xff0c;simulate100个…...

从零构建工业级垃圾邮件分类器:端到端实战指南

1. 项目概述&#xff1a;从零构建一个真正能用的垃圾邮件分类器你打开邮箱&#xff0c;每天收到几十封邮件&#xff0c;其中总混着几封标题耸动、内容空洞、发件人可疑的“优惠券”“中奖通知”“账户异常提醒”——它们不是广告&#xff0c;而是典型的垃圾邮件&#xff08;Spa…...

ChatGPT网络错误不是运气问题:用mtr追踪真实路径,定位ISP路由黑洞、中间盒QoS限速与WAF误拦截(附15分钟速查表)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;ChatGPT网络错误不是运气问题&#xff1a;用mtr追踪真实路径&#xff0c;定位ISP路由黑洞、中间盒QoS限速与WAF误拦截&#xff08;附15分钟速查表&#xff09; ChatGPT连接失败常被归因为“服务器繁忙”或“网…...

hoverboard-firmware-hack-FOC终极兼容性指南:STM32F103RCT6与GD32F103RCT6深度对比

hoverboard-firmware-hack-FOC终极兼容性指南&#xff1a;STM32F103RCT6与GD32F103RCT6深度对比 【免费下载链接】hoverboard-firmware-hack-FOC With Field Oriented Control (FOC) 项目地址: https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC 想…...

GPT-4的1.8T参数与2%激活率:MoE架构原理与工程真相

1. 项目概述&#xff1a;参数规模与稀疏激活的真相拆解“GPT-4 Has 1.8 Trillion Parameters. It Uses 2% of Them Per Token.”——这句话过去两年在技术社区反复刷屏&#xff0c;常被当作“大模型已突破算力瓶颈”的佐证&#xff0c;也常被误读为“GPT-4只用360亿参数&#x…...