查找局域网树莓派raspberry的mac地址和ip
依赖python库:
pip install socket
pip install scapy
运行代码:
import socket
from scapy.layers.l2 import ARP, Ether, srpdef get_hostname(ip_address):try:return socket.gethostbyaddr(ip_address)[0]except socket.herror:# 未能解析主机名return Nonedef scan_network(ip_range):"""扫描指定 IP 范围内的局域网,返回找到的 IP 和 MAC 地址列表"""arp_request = ARP(pdst=ip_range)broadcast = Ether(dst="ff:ff:ff:ff:ff:ff")arp_request_broadcast = broadcast / arp_requestanswered_list = srp(arp_request_broadcast, timeout=1, verbose=False)[0]devices_list = []for sent, received in answered_list:hostname = get_hostname(received.psrc)devices_list.append({'ip': received.psrc, 'mac': received.hwsrc, 'hostname': hostname})print(f"IP: {received.psrc}, MAC: {received.hwsrc}, Hostname: {hostname}") # DEBUGreturn devices_list# 请替换成你的实际IP范围
network_devices = scan_network('192.168.1.1/24')raspberry_pis = [device for device in network_devices ifdevice['hostname'] and 'raspberrypi' in device['hostname'].lower()]for pi in raspberry_pis:print(f"Found Raspberry Pi! Hostname: {pi['hostname']}, IP: {pi['ip']}, MAC: {pi['mac']}")
以上代码的运行有个工具的依赖
-
Npcap来源github
Npcap来自官网 -
Bonjour来自github(这个通常Windows会自带,如果没有就下载安装一下)
通常,上面这个代码可能无法正常显示raspberry的主机名,那就要结合ping -4 raspberrypi.local指令了,代码如下:
import socket
from scapy.layers.l2 import ARP, Ether, srp
import subprocessdef get_hostname(ip_address):try:return socket.gethostbyaddr(ip_address)[0]except socket.herror:# 未能解析主机名return Nonedef ping_host(hostname):try:subprocess.check_output(['ping', '-4', hostname])return Trueexcept subprocess.CalledProcessError:return Falsedef get_ip_from_hostname(hostname):try:return socket.gethostbyname(hostname)except socket.error:return Nonedef scan_network(ip_range):"""扫描指定 IP 范围内的局域网,返回找到的 IP 和 MAC 地址列表"""arp_request = ARP(pdst=ip_range)broadcast = Ether(dst="ff:ff:ff:ff:ff:ff")arp_request_broadcast = broadcast / arp_requestanswered_list = srp(arp_request_broadcast, timeout=1, verbose=False)[0]devices_list = []for sent, received in answered_list:hostname = get_hostname(received.psrc)devices_list.append({'ip': received.psrc, 'mac': received.hwsrc, 'hostname': hostname})print(f"IP: {received.psrc}, MAC: {received.hwsrc}, Hostname: {hostname}") # DEBUGreturn devices_listdef find_raspberry_pi(devices_list):raspberry_pi_hostname = 'raspberrypi.local'if ping_host(raspberry_pi_hostname):raspberry_pi_ip = get_ip_from_hostname(raspberry_pi_hostname)for device in devices_list:if device['ip'] == raspberry_pi_ip:return devicereturn None# 请替换成你的实际IP范围
network_devices = scan_network('192.168.1.1/24')
raspberry_pi = find_raspberry_pi(network_devices)if raspberry_pi:print(f"Found Raspberry Pi! Hostname: {raspberry_pi['hostname']}, IP: {raspberry_pi['ip']}, MAC: {raspberry_pi['mac']}")
else:print("Raspberry Pi not found on the network.")
看看运行结果:

已经顺利找到了局域网树莓派的ip~
如果还有什么问题,欢迎留言~
相关文章:
查找局域网树莓派raspberry的mac地址和ip
依赖python库: pip install socket pip install scapy运行代码: import socket from scapy.layers.l2 import ARP, Ether, srpdef get_hostname(ip_address):try:return socket.gethostbyaddr(ip_address)[0]except socket.herror:# 未能解析主机名ret…...
乐观锁与悲观锁:高并发场景下的选择
😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…...
vue2 省市区联动组件封装
在element ui中有级联选择器el-cascader,其实已经够用了,但是在实际需求中,发现el-cascader如果有三级,数据数组必须得三个才能完全展示,所以不符合实际需求,还是自定义封装吧 需求:省市区联动数组,有多少个显示多少个 这里使用element ui得el-select组件,思路是使用…...
VScode远程开发
VScode远程开发 在SSH远程连接一文中,我么介绍了如何使用ssh远程连接Jetson nano端,但是也存在诸多不便,比如:编辑文件内容时,需要使用vi编辑器,且在一个终端内,无法同时编辑多个文件。本节将介绍一较为实用…...
芯片设计重要工具—— IBM LSF 分布式高性能计算调度平台
IBM Spectrum LSF Suites 是面向分布式高性能计算 (HPC) 的工作负载管理平台和作业调度程序。基于 Terraform 的自动化现已可用,该功能可在 IBM Cloud 上为基于 IBM Spectrum LSF 的集群供应和配置资源。 借助我们针对任务关键型 HPC 环境的集成解决方案࿰…...
RDMA Scatter Gather List详解
1. 前言 在使用RDMA操作之前,我们需要了解一些RDMA API中的一些需要的值。其中在ibv_send_wr我们需要一个sg_list的数组,sg_list是用来存放ibv_sge元素,那么什么是SGL以及什么是sge呢?对于一个使用RDMA进行开发的程序员来说&#…...
【动态规划】24子数组系列_最长湍流子数组_C++
题目链接:最长湍流子数组 目录 题目解析: 算法原理 1.状态表示 2.状态转移方程 3.初始化 4.填表顺序 5.返回值 编写代码 题目解析: 题目让我们求返回 arr 的 最大湍流子数组的长度 由题可得: 如果比较符号在子数组中的…...
fastJson和jackson的日期数据处理
目录 1.jackson 2.fastjson 3.总结 1.jackson jackson是spring mvc默认的JSON解析方法,前端的数据序列化处理之后,后端经过反序列化处理可以直接使用实体对象进行接收。后端接口返回实体对象,经过序列化处理后前端可以接收并进行处理。 …...
书生·浦语大模型实战营第五节课笔记及作业
LMDeploy 大模型量化部署实践 1 大模型部署背景 1.1 模型部署及大模型特点 1.2 大模型部署挑战及方案 2 LMDeploy简介 2.1 核心功能-量化 2.2 核心功能-推理引擎TurboMind 2.1 核心功能-推理服务api server 3 动手实践及作业 按照文档LMDeploy 的量化和部署中的步骤在Intern…...
如何在CentOS 7 中基于OpenSSL 3.0 搭建Python 3.0 环境
1、OpenSSL 1.1 原因 [rootlocalhost ~]# openssl version OpenSSL 1.0.2k-fips 26 Jan 2017 [rootlocalhost ~]#通过执行openssl version可知Linux系统已经安装了OpenSSL,但该版本较低;Python 3 要求 OpenSSL版本不能低于1.1.1,否则安装P…...
爬虫接口获取外汇数据(汇率,外汇储备,贸易顺差,美国CPI,M2,国债利率)
akshare是一个很好用的财经数据api接口,完全免费!!和Tushare不一样。 除了我标题显示的数据外,他还提供各种股票数据,债券数据,外汇,期货,宏观经济,基金,银行…...
Spring Cloud和微服务架构的关系
大话Spring Cloud 在Java悠久的历史长河中(其实也就十来年),有一个框架自诞生之初就成了Java企业级开发领域的弄潮儿,它以开放的姿态不断引领着技术改革(我们管他叫Java领域的“改革开放”),它就是久经考验的企业级开发框架,改革…...
C++:通过ofstream写入二进制文件内容
C++:通过ifstream读取二进制文件内容_c++ ifstream 二进制读取-CSDN博客 介绍了读取二进制文件的方法。 本文介绍一下写入二进制数据到文件的方法: 1.通过write #include <fstream> #include <string> using namespace std; int main() {int data = 0x0102030…...
系统配置dns主从服务器
一、准备两台主机,区分主从 二、完全区域传送 1、主DNS服务器配置 #安装相关的包 [rootoula1 ~]# yum install bind -y#关闭防火墙 [rootoula1 ~]# systemctl stop firewalld [rootoula1 ~]# setenforce 0#修改配置主文件 [rootoula1 ~]# vim /etc/named.conf opt…...
【git】解决网络连接问题
ssh: connect to host github.com port 22: Connection timed out $ ssh: connect to host github.com port 22: Connection timed out fatal: Could not read from remote repository. bash: ssh:: command not found bash: fatal:: command not found无效 检查网络…...
限制API接口访问速率
文章目录 依赖注解aophelperTest 免责声明:本人无意侵权,奈何找不到原文作者,也找不到网址,于是自己记录一下,如果有侵权之嫌,请联系我删除文章 依赖 <!-- https://mvnrepository.com/artifact/com.goo…...
广东省第三届职业技能大赛“网络安全项目”B模块--数字取证解析
广东省第三届职业技能大赛“网络安全项目”B模块任务书 PS: 关注鱼影安全第一部分 网络安全事件响应第二部分 数字取证调查任务 3: 网络数据包分析取证解析:第三部分 应用程序安全:需要环境可以私信博主~PS: 关注鱼影安全 模块 B 竞赛项目试题 本文件为:广东省第三届职业技…...
全链路压力测试:现代软件工程中的重要性
全链路压力测试不仅可以确保系统在高负载下的性能和稳定性,还能帮助企业进行有效的风险管理和性能优化。在快速发展的互联网时代,全链路压力测试已成为确保软件产品质量的关键步骤。 1、测试环境搭建 测试应在与生产环境尽可能相似的环境中进行ÿ…...
【计算机网络】难点、易遗忘点总结
文章目录 1. 单工通信、半双工通信和全双工通信2. TCP的三次握手和四次挥手 1. 单工通信、半双工通信和全双工通信 主要区别在于信息传输的方向和时间安排。单工通信是指信息只能在一个方向上传输的通信方式。半双工通信允许信息在两个方向上传输,但在任何给定的时…...
谷达冠楠科技:抖音开网店新手小白可以卖的产品
随着互联网的发展,越来越多的人选择在网上开设自己的店铺。而抖音作为目前最火的短视频平台,也提供了开店的功能。那么,对于新手小白来说,抖音开网店可以卖哪些产品呢? 我们可以考虑的是服装类商品。抖音上有很多时尚博主&#x…...
Java的迪米特原则介绍
01.问题思考的分析什么是迪米特原则,这个原则如何理解,如何运用到实际开发,举例说明一下?什么是高内聚松耦合,能否举例说明一下?迪米特法则。尽管它不像 SOLID、KISS、DRY 原则那样,人尽皆知&am…...
别再手动整理PDF了!用PaddleOCR的PP-StructureV3,一键把合同/论文转成Markdown
告别手动整理:用PP-StructureV3实现合同/论文一键转Markdown的高效方案 每次面对堆积如山的合同扫描件或学术论文PDF时,你是否还在手工复制粘贴内容?当需要从复杂排版的文档中提取结构化数据时,传统OCR工具往往束手无策——表格变…...
Hunyuan-MT-7B GPU部署:Pixel Language Portal在单卡A10上并发处理16路实时语音翻译压测报告
Hunyuan-MT-7B GPU部署:Pixel Language Portal在单卡A10上并发处理16路实时语音翻译压测报告 1. 项目背景与核心价值 Pixel Language Portal(像素语言跨维传送门)是一款基于Tencent Hunyuan-MT-7B大模型构建的创新翻译工具。与传统翻译软件…...
基于Cortex-M3和步进电机的数字钟控制及其语音播报系统设计
一、系统概述 系统以Cortex-M3内核单片机(如STM32F103C8T6)为核心,融合步进电机精密驱动、实时时钟(RTC)、语音合成播报三大功能,实现“数字钟精准显示机械指针动态指示定时语音报时”的一体化设计。系统通…...
<数据集>yolo骑行者识别<目标检测>
数据集下载链接https://blog.csdn.net/qq_53332949/article/details/159770308?spm1011.2415.3001.5331数据集格式:VOCYOLO格式 图片数量:13674张 标注数量(xml文件个数):13674 标注数量(txt文件个数):13674 标注类别数&…...
基于MATLAB的悬臂梁前3阶固有频率和振型求解(假设模态法、解析法、瑞利里兹法)
基于matlab的求解悬臂梁前3阶固有频率和振型 基于matlab的求解悬臂梁前3阶固有频率和振型,采用的方法分别是(假设模态法,解析法,瑞利里兹法) 程序已调通,可直接运行悬臂梁的振动分析总带着点工程师的浪漫——既要数学的…...
OpenClaw+Qwen3.5-9B:法律文档审查助手实战
OpenClawQwen3.5-9B:法律文档审查助手实战 1. 为什么需要AI法律文档助手? 去年接手一个跨境合作项目时,我曾在72小时内手动审阅了137页的英文合同草案。那段经历让我意识到:传统人工审查不仅效率低下,还容易因疲劳遗…...
鸿蒙开发实战:HDC工具在本地模拟器中的高效调试技巧
1. HDC工具入门:鸿蒙开发的瑞士军刀 第一次接触HDC工具时,我把它当成了鸿蒙版的ADB。但用久了才发现,这个看似简单的命令行工具,其实是鸿蒙开发的万能钥匙。HDC全称Huawei Device Connector,就像它的名字一样ÿ…...
FLUX.1-dev像素模型部署教程:Docker Compose编排前端+后端+模型服务
FLUX.1-dev像素模型部署教程:Docker Compose编排前端后端模型服务 1. 项目概述 像素幻梦(Pixel Dream Workshop)是基于FLUX.1-dev扩散模型构建的像素艺术生成平台,采用16-bit像素风格设计,为创作者提供沉浸式的AI绘图体验。本教程将指导您使…...
2025_NIPS_RT V-Bench: Benchmarking MLLM Continuous Perception, Understanding and Reasoning through R
文章主要内容与创新点总结 一、主要内容 本文针对现有基准测试无法充分评估多模态大语言模型(MLLMs)在动态真实环境中持续感知、理解和推理能力的问题,提出了实时视频分析基准测试集RT V-Bench。该基准包含552个多样化视频(总时长167.2小时)和4631个高质量问答对,涵盖智…...
