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

nodejs 获取本地局域网 ip 扫描本地端口

因为傻逼老板的垃圾需求,不得不成长

示例代码:
获取本地局域网  ip  地址:

需要注意的是:如果存在虚拟机网络,则返回的是虚拟机网络的  ipv4  地址

import os from 'os';
export const getLocalIp = () => {const interfaces = os.networkInterfaces();for (const name of Object.keys(interfaces)) {for (const net of interfaces[name]) {if (net.family === 'IPv4' && !net.internal) {return net.address;}}}return 'Can not get local IP';
};

扫描本地端口:

因为我需要查找本地几个  ip  的  3000  端口是否开放   可根据实际需求自行修改部分代码:

import os from 'os';
import net from "net";
const { Socket } = net;const timeout = 100;
export const getLocalIp = () => {const interfaces = os.networkInterfaces();for (const name of Object.keys(interfaces)) {for (const net of interfaces[name]) {if (net.family === 'IPv4' && !net.internal) {return net.address;}}}return 'Can not get local IP';
};const scanHostPort = (host, port, cb) => {return new Promise((resolve, reject) => {const socket = new Socket();socket.setTimeout(timeout);socket.on("connect", function () {console.debug(`链接成功:${host}`);socket.end();cb && cb(null, host);resolve(host);});socket.on("timeout", function () {// console.error(`链接超时:${host}`);socket.destroy();cb && cb(new Error("timeout"), host);resolve(false);});socket.on("error", function (err) {// console.warn(`链接失败:${host}`);cb && cb(err, host);resolve(false);});socket.on("close", function (err) {});socket.connect(port, host);});
}export const scanIPs = async () => {const current_ip = getLocalIp();let current_ip_parts = current_ip.split('.');current_ip_parts.pop();current_ip_parts = current_ip_parts.join('.');const deferCache = [];for (let index = 0; index <= 255; index++) {deferCache.push(scanHostPort(`${current_ip_parts}.${index}`,3000));}const result = (await Promise.all(deferCache)).filter((it) => it);return result;
}

相关文章:

nodejs 获取本地局域网 ip 扫描本地端口

因为傻逼老板的垃圾需求&#xff0c;不得不成长 示例代码&#xff1a; 获取本地局域网 ip 地址&#xff1a; 需要注意的是&#xff1a;如果存在虚拟机网络&#xff0c;则返回的是虚拟机网络的 ipv4 地址 import os from os; export const getLocalIp () > {const in…...

区块链签名种类

1. eth_sign 简介&#xff1a;最早实现的签名方法&#xff0c;用于对任意数据进行签名。签名内容&#xff1a;直接对原始消息的哈希值进行签名。特点&#xff1a; 安全性较低&#xff0c;因为签名的消息没有明确的上下文或结构。很容易被滥用&#xff0c;攻击者可以伪造签名内…...

【062B】基于51单片机无线病房呼叫系统(+时间)【Keil程序+报告+原理图】

☆、设计硬件组成&#xff1a;51单片机最小系统NRF24L01无线模块DS1302时钟芯片LCD1602液晶显示按键设置蜂鸣器LED灯。 1、本设计采用STC89C51/52、AT89C51/52、AT89S51/52作为主控芯片&#xff0c;采用LCD1602液晶显示呼叫信息&#xff0c;系统共有两个板子&#xff08;一个接…...

突破空间限制!从2D到3D:北大等开源Lift3D,助力精准具身智能操作!

文章链接&#xff1a;https://arxiv.org/pdf/2411.18623 项目链接&#xff1a;https://lift3d-web.github.io/ 亮点直击 提出了Lift3D&#xff0c;通过系统地提升隐式和显式的3D机器人表示&#xff0c;提升2D基础模型&#xff0c;构建一个3D操作策略。 对于隐式3D机器人表示&a…...

【pyspark学习从入门到精通24】机器学习库_7

目录 聚类 在出生数据集中寻找簇 主题挖掘 回归 聚类 聚类是机器学习中另一个重要的部分&#xff1a;在现实世界中&#xff0c;我们并不总是有目标特征的奢侈条件&#xff0c;因此我们需要回归到无监督学习的范式&#xff0c;在那里我们尝试在数据中发现模式。 在出生数据…...

Echart折线图属性设置 vue2

Echart折线图 官方配置项手册 Documentation - Apache ECharts 下面代码包含&#xff1a;设置标题、线条样式、图例圆圈的样式、显示名称格式、图片保存、增加Y轴目标值 updateChart(data) {const sortedData data.slice().sort((a, b) > new Date(a.deviceTime) - ne…...

LabVIEW-简单串口助手

LabVIEW-简单串口助手 串口函数VISA配置串口VISA写入函数VISA读取函数VISA资源名称按名称解除捆绑 函数存放位置思维导图主体界面为以下 串口函数 VISA配置串口 VISA写入函数 VISA读取函数 VISA资源名称 按名称解除捆绑 函数存放位置 思维导图 主体界面为以下 从创建好的“枚举…...

Linux下,用ufw实现端口关闭、流量控制(二)

本文是 网安小白的端口关闭实践 的续篇。 海量报文&#xff0c;一手掌握&#xff0c;你值得拥有&#xff0c;让我们开始吧&#xff5e; ufw 与 iptables的关系 理论介绍&#xff1a; ufw&#xff08;Uncomplicated Firewall&#xff09;是一个基于iptables的前端工具&#xf…...

C#开发-集合使用和技巧(九)Join的用法

在C#中&#xff0c;IEnumerable 的 Join 方法用于根据键将两个序列中的元素进行关联。Join 方法通常用于执行类似于 SQL 中的内连接操作。以下是 Join 方法的基本用法&#xff1a; 基本语法 public static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult…...

Dockerfile容器镜像构建技术

文章目录 1、容器回顾1_容器与容器镜像之间的关系2_容器镜像分类3_容器镜像获取的方法 2、其他容器镜像获取方法演示1_在DockerHub直接下载2_把操作系统的文件系统打包为容器镜像3_把正在运行的容器打包为容器镜像 3、Dockerfile介绍4、Dockerfile指令1_FROM2_RUN3_CMD4_EXPOSE…...

Github 2024-12-01 开源项目月报 Top20

根据Github Trendings的统计,本月(2024-12-01统计)共有20个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目10TypeScript项目9Go项目2HTML项目1Shell项目1Jupyter Notebook项目1屏幕截图转代码应用 创建周期:114 天开发语言:TypeScript, Py…...

Spring Boot 3项目集成Swagger3教程

Spring Boot 3项目集成Swagger3教程 ?? 前言 欢迎来到我的小天地&#xff0c;这里是我记录技术点滴、分享学习心得的地方。?? ?? 技能清单 编程语言&#xff1a;Java、C、C、Python、Go、前端技术&#xff1a;Jquery、Vue.js、React、uni-app、EchartsUI设计: Element-u…...

NISP信息安全一级考试200道;免费题库;大风车题库

下载链接&#xff1a;大风车题库-文件 大风车题库网站&#xff1a;大风车题库 大风车excel&#xff08;试题转excel&#xff09;&#xff1a;大风车excel...

Android ConstraintLayout 约束布局的使用手册

目录 前言 一、ConstraintLayout基本介绍 二、ConstraintLayout使用步骤 1、引入库 2、基本使用&#xff0c;实现按钮居中。相对于父布局的约束。 3、A Button 居中展示&#xff0c;B Button展示在A Button正下方&#xff08;距离A 46dp&#xff09;。相对于兄弟控件的约束…...

在网安中什么是白帽子

在网络安全领域&#xff0c;白帽子是指那些专门从事网络安全研究&#xff0c;帮助企业或个人发现并修复安全漏洞的专家。以下是对白帽子的详细解释&#xff1a; 一、定义与角色 白帽子是网络安全领域的术语&#xff0c;通常指那些具备专业技能和知识的网络安全专家。他们的工作…...

软件专业科目难度分级 你输在了哪里?

感想&#xff1a; 我把我们现在软件专业学的东西分了个难度级别 级别描述视角服务对象例子0 基本软件的使用用户-Photoshop wps ssms等1 软件的原理开发者用户各种编程语言2软件的原理的原理开发者开发者各种函数的深层定义&#xff0c;数据结构等 0级就是咱们平时用的那些软…...

微信小程序实现图片拖拽调换位置效果 -- 开箱即用

在编写类似发布朋友圈功能的功能时&#xff0c;需要实现图片的拖拽排序&#xff0c;删除图片等功能。 博主的小程序首页也采用了该示例代码&#xff0c;可以在威信中搜索&#xff1a; 我的百宝工具箱 或者复制后面的&#x1f517;在手机打开&#xff1a; #小程序://百宝工具箱/…...

关于“浔川AI翻译”使用情况的调研报告

关于“浔川 AI 翻译”使用情况的调研报告 随着全球化进程加速及外语学习需求攀升&#xff0c;AI 翻译工具愈发普及。“浔川 AI 翻译”作为行业产品之一&#xff0c;为了解其市场表现与用户反馈&#xff0c;特开展本次问卷调查&#xff0c;现将关键结果汇报如下。 一、样本概…...

《芯片:科技之核,未来之路》

《芯片&#xff1a;科技之核&#xff0c;未来之路》 一、芯片的定义与重要性二、芯片的应用领域&#xff08;一&#xff09;新能源领域&#xff08;二&#xff09;信息通讯设备领域&#xff08;三&#xff09;4C 产业&#xff08;四&#xff09;智能电网领域&#xff08;五&…...

️ 在 Windows WSL 上部署 Ollama 和大语言模型的完整指南20241206

&#x1f6e0;️ 在 Windows WSL 上部署 Ollama 和大语言模型的完整指南 &#x1f4dd; 引言 随着大语言模型&#xff08;LLM&#xff09;和人工智能的飞速发展&#xff0c;越来越多的开发者尝试在本地环境中部署大模型进行实验。然而&#xff0c;由于资源需求高、网络限制多…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

关于easyexcel动态下拉选问题处理

前些日子突然碰到一个问题&#xff0c;说是客户的导入文件模版想支持部分导入内容的下拉选&#xff0c;于是我就找了easyexcel官网寻找解决方案&#xff0c;并没有找到合适的方案&#xff0c;没办法只能自己动手并分享出来&#xff0c;针对Java生成Excel下拉菜单时因选项过多导…...