electron 获取本机 ip 地址

devtools/2025/1/19 10:14:46/

1.  主进程代码

在主进程中,使用 `os` 模块获取本机 IP 地址,并通过 `ipcMain` 将结果发送给渲染进程。

javascript">// main.jsconst { app, BrowserWindow, ipcMain } = require("electron");const os = require("os");function createWindow() {const win = new BrowserWindow({width: 800,height: 600,webPreferences: {nodeIntegration: true,contextBridge: true,},});win.loadFile("index.html");}app.whenReady().then(() => {createWindow();app.on("activate", () => {if (BrowserWindow.getAllWindows().length === 0) {createWindow();}});});// 获取本机 IP 地址的函数function getLocalIP() {let interfaces = os.networkInterfaces();for (let devName in interfaces) {let iface = interfaces[devName];for (let i = 0; i < iface.length; i++) {let alias = iface[i];if (alias.family === "IPv4" &&alias.address !== "127.0.0.1" &&!alias.internal) {return alias.address;}}}}// 监听渲染进程的请求ipcMain.on("get-ip-address", (event) => {const localIP = getLocalIP();event.reply("ip-address", localIP);});

2. 渲染进程代码

在渲染进程中,使用 `ipcRenderer` 向主进程发送请求,并接收主进程返回的 IP 地址。

javascript"><!-- index.html --><!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><title>Electron IP Address</title></head><body><button id="get-ip">获取本机 IP 地址</button><p id="ip-address"></p><script>const { ipcRenderer } = require("electron");const getIpButton = document.getElementById("get-ip");const ipAddressDisplay = document.getElementById("ip-address");getIpButton.onclick = () => {ipcRenderer.send("get-ip-address");};ipcRenderer.on("ip-address", (event, ip) => {ipAddressDisplay.textContent = ip;});</script></body></html>


http://www.ppmy.cn/devtools/151798.html

相关文章

SpringMVC 实战指南:文件上传

第一章&#xff1a;常用的注解&#xff1a; RequestParam 注解&#xff1a; 作用&#xff1a;把请求中的指定名称的参数传递给控制器中的形参赋值属性&#xff1a; value&#xff1a;请求参数中的名称required&#xff1a;请求参数中是否必须提供此参数&#xff0c;默认值是 tr…

ubuntu18.04开发环境下samba服务器的搭建

嵌入式linux的发展很快&#xff0c;最近准备在一个新项目上采用新一代的linux核心板&#xff0c;发现linux内核的版本已经更新到5.4以上甚至6.0以上&#xff1b;之前常用的linux内核版本是2.6.4&#xff0c;虽然在某些项目上还能用但是明显跟不上时代的步伐了&#xff0c;所以要…

基于YOLOv8的卫星图像中船只检测系统

基于YOLOv8的卫星图像中船只检测系统 (价格90) 使用的是 MASATI-V2 数据集 训练集 3617张 验证集 452张 测试集 453张 包含 [boat] [船只] 1个类 通过PYQT构建UI界面&#xff0c;包含图片检测&#xff0c;视频检测&#xff0c;摄像头实时检测。 &#xff08;该系…

前端小知识 鼠标穿透 pointer-events: none;

为什么会说到这个呢&#xff1f;是我觉得没有识别出来&#xff0c;然后就导致了这样的问题&#xff0c;这种情况不应该发生。我写了如下这样一段代码&#xff0c;但是发现当自己选择时间的时候无法选择。然后就发现变成了光标在闪烁。这样其实就是因为我选择到了这个input框的鼠…

【王树森搜索引擎技术】概要01:搜索引擎的基本概念

1. 基本名词 query&#xff1a;查询词SUG&#xff1a;搜索建议文档&#xff1a;搜索结果标签/筛选项 文档单列曝光 文档双列曝光 2. 曝光与点击 曝光&#xff1a;用户在搜索结果页上看到文档&#xff0c;就算曝光文档点击&#xff1a;在曝光后&#xff0c;用户点击文档&…

与“神”对话:Swift 语言在 2025 中的云霓之望

0. 引子 夜深人静&#xff0c;是一片极度沉醉的黑&#xff0c;这便于我与深沉的 macbook 悄悄隐秘于其中。一股异香袭来&#xff0c;恍惚着&#xff0c;撸码中身心极度疲惫、头脑昏沉的我仿佛感觉到了一束淡淡的微光轻洒在窗边。 我的对面若隐若现逐渐浮现出一个熟悉的身影。他…

最新-CentOS 7安装Docker容器(适合本地和云服务器安装)

CentOS 7安装Docker容器 一、引言二、安装Docker1.更换镜像源2.添加yum源3.安装yum-util4.设置docker yum源5.安装并运行Docker6.检查安装结果 三、设置Docker镜像仓库加速1.创建并编辑/etc/docker/daemon.json文件&#xff08;如果文件不存在&#xff0c;则创建&#xff09;。…

C# 并发和并行的区别--16

目录 并发和并行 一.并发 定义 特点 代码示例 代码解释 二.并行 定义 特点 在C#中的体现 代码示例 代码解释 三.并发和并行的区别 四 .如何在C#中选择并发还是并行 1.考虑任务类型 2.代码示例 3.注意事项 五.总结 并发和并行 在编程领域,并发和并行是两个密切…