检测前端是否可以ping通后端返回的ip地址

检测前端是否可以ping通后端返回的ip地址

    • 前端检测是否可ping通ip地址(PC端)
    • 前端检测是否可ping通ip地址(uniapp小程序端)

前端检测是否可ping通ip地址(PC端)

// 前端检测是否可ping通ip地址        
pingFn(ips) {let promiseArr = [];ips.forEach(ip=>{// debuggerlet pro = new Promise((res, rej)=>{let img = new Image();let start = new Date().getTime();img.src = 'https://' + ip + '?t=' + start;img.onload = function() {res({code:200,status: true,ip});};img.onerror = function() {res({code:200,status: true,ip});};let timer = setTimeout(()=>{clearTimeout(timer);rej();}, 1500);}).catch((e) => {});promiseArr.push(pro);});return Promise.any(promiseArr);
},

前端检测是否可ping通ip地址(uniapp小程序端)

// 前端检测是否可ping通ip地址             
pingFn(ips) {let promiseArr = [];ips.forEach(ip=>{let pro = new Promise((res, rej)=>{let start = new Date().getTime();let url = 'https://' + ip + '?t=' + start;uni.getImageInfo({  src: url,  success: function (image) {  res({code:200,status: true,ip});},  fail:function(err){  res({code:200,status: true,ip});}  }); let timer = setTimeout(()=>{clearTimeout(timer);rej();}, 1500);}).catch((e) => {});promiseArr.push(pro);});return Promise.any(promiseArr);
},
async getData() {let a = await this.pingFn(['192.168.0.12','192.168.0.13']);// console.log('检测是否能ping通内网地址====',a)if(a){// 如果有返回值,则可以ping通}else{// 无返回值会返回undefined}// 根据返回值执行自己的后续操作
}

首先实现的是PC端功能,后粘贴到小程序里,发现实现不了,代码一行行定位后发现在new Image()那一步就已经走不下去了,后百度发现脚本不支持Image对象,将写法改一下即可。
参考文档:
1、vue2实现前端ping 后端给的ip地址是否可以ping通【https://blog.csdn.net/weixin_43845137/article/details/130371232】
2、uni-app在脚本中不支持Image对象?【https://ask.dcloud.net.cn/question/76390】

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

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

相关文章

2023年新手如何学剪辑视频 想学视频剪辑如何入门

随着短视频、vlog等媒体形式的兴起,视频剪辑已经成为了热门技能。甚至有人说,不会修图可以,但不能不会剪视频。实际上,随着各种智能软件的发展,视频剪辑已经变得越来越简单。接下来,一起来看看新手如何学剪…

【ChatGPT 指令大全】怎么使用ChatGPT来帮我们写作

在数字化时代,人工智能为我们的生活带来了无数便利和创新。在写作领域,ChatGPT作为一种智能助手,为我们提供了强大的帮助。不论是作文、文章,还是日常函电,ChatGPT都能成为我们的得力助手,快速提供准确的文…

MySQL — MVCC

文章目录 MVCCMVCC 实现原理隐藏字段undo logundo log的用途undo log类型 版本链ReadView MVCC InnoDB是一个多版本的存储引擎。它保留有关已更改行的旧版本的信息,以支持并发和回滚等事务性特性。这些信息存储在undo表空间中的数据结构称为回滚段。InnoDB使用回滚…

培训报名小程序报名功能完善

目录 1 修改数据源2 修改表单3 支付成功时修改状态4 创建报名成功页5 最终的效果总结 目前我们的报名功能已经搭建了一个基础版,后续需要展示用户已经报名的信息,需要添加一个状态来显示用户是否成功付费。 1 修改数据源 打开我们的报名数据源&#xff…

mysql大量数据导入记要

需求描述 在工作中经历过两个项目要对数据库中的数据做大量数据的导出,转换和导入的工作。对于不涉及数据格式转换的导出导入工作,一般都是数据的备份。这个工作一般都由DBA搞定。对于要进行格式转换的工作,一般还是要由程序员参与。除非DBA…

解决ubuntu22卡死问题

解决ubuntu22卡死问题 最近用ubuntu2204做odoo开发,经常卡死,不清楚是什么原因,后来无意中发现pycharm占了50%内存(公司电脑,一共8G),然后看了一下交换分区,总共2G(默认…

前端中常见的设计模式

1.单例模式 描述:保证一个类仅有实例,并提供一个可以全局访问他的点,它通常用于管理应用程序的全局状态或资源,例如一个唯一的状态管理器。 代码示例: class Singleton {constructor() {if (!Singleton.instance) {…

【基础类】—前端算法类

一、排序 1. 排序方法列表 2. 常见排序方法 快速排序选择排序希尔排序 二、堆栈、队列、链表 堆栈、队列、链表 三、递归 递归 四、波兰式和逆波兰式 理论源码

机器学习笔记之优化算法(十一)梯度下降法:凸函数VS强凸函数

机器学习笔记之优化算法——梯度下降法:凸函数VS强凸函数 引言凸函数:凸函数的定义与判定条件凸函数的一阶条件凸函数的梯度单调性凸函数的二阶条件 强凸函数强凸函数的定义强凸函数的判定条件强凸函数的一阶条件强凸函数的梯度单调性强突函数的二阶条件…

redis的主从复制,哨兵和cluster集群

目录 一、redis的高可用 1)redis高可用的概念 2)Redis的高可用技术 二、redis主从复制 1)主从复制的作用 2)主从复制流程 三、redis一主二从的部署 实验组件 实验步骤 环境准备 修改内核参数 安装 Redis 创建redis工…

前后端分离式项目架构流程复盘之宿舍管理系统

文章目录 🐒个人主页🏅JavaEE系列专栏📖前言:【🎇前端】先创建Vue-cli项目(版本2.6.10,仅包含babel),请选择此项目并创建 【整理简化项目模板】【🎀创建路由】…

k8s 终止pod

cat test.yaml apiVersion: v1 #必选,版本号,例如v1 kind: Pod #必选,Pod metadata: #必选,元数据 name: string #必选,Pod名称 namespace: string #必选,Pod所属的命…

git clean 命令

git clean -n //显示要删除的文件,clean的演习,告诉哪些文件删除,只是一个提醒。 git clean -dn //显示要删除的文件和目录 git clean -f //删除未追踪的文件 git clean -dff //删除未追踪的目录 git clean -df //清除所有未跟踪文件&#xf…

缩略图更清晰了:imagecopysampled代替imagecopyresized

之前用 imagecopyresized() 生成缩略图,但是效果不是太理想,后来把 imagecopyresized() 换成 imagecopysampled() ,效果好太多了,图片变得更加清晰了。 通过对比图,很明显看出,imagecopysampled()生成的缩略图,清晰度高很多。 下面是imagecopysampled()生成缩略图的代…

Netty面试题1

计算机网络模型 OSI采用了分层的结构化技术,共分七层, 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层 。 Open System Interconnect 简称OSI,是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参…

互联网医院|线上医疗平台连接医者和患者的桥梁

近年来,随着互联网技术的飞速发展,互联网医院系统悄然崛起,引领着医疗行业的变革浪潮。这一系统以其出色的功能与服务,为广大患者带来了便捷、高效的医疗体验,将传统医疗模式推向了新的高度。 作为医疗界的新生力量&a…

c# 初始化列表,并给列表里面所有的元素进行初始化

Enumerable.Repeat 方法是用于生成一个包含指定元素重复若干次的序列。它接受两个参数,第一个参数是要重复的元素,第二个参数是重复次数。 下面是 Enumerable.Repeat 方法的用法和示例: using System; using System.Collections.Generic; u…

nginx中的location匹配与重定向

location匹配有三种方法:完全匹配,正则匹配,通用匹配。 精确匹配:location / { ... } 正则匹配:location - / { ... } 一般匹配:location / { ... } location通过uri来匹配资源。uri:统一资源…

FFmpeg常见命令行(三):FFmpeg转码

前言 在Android音视频开发中,网上知识点过于零碎,自学起来难度非常大,不过音视频大牛Jhuster提出了《Android 音视频从入门到提高 - 任务列表》。本文是Android音视频任务列表的其中一个, 对应的要学习的内容是:如何使…

七月学习总结

一晃暑期七月份已经结束了,八月份需要做的事情更多。 在成长的路上不断地迷茫,不断地前进。到底才能完成对自己地救赎。 目前想的就是以后走软件开发,往架构方向做,主语言Java或者go,408基础一定要扎实,计…