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

获取ip(公网和内网) 前端通过高德api获取位置信息

获取ip(公网和内网) 前端通过高德api获取位置信息

获取ip

//获取公网ip
getIp() {this.$axios.get('http://api.ipify.org').then((res) => {if (res) {console.log(res, '公网ip');}}).catch((e) => {console.log('e', e);});
},//获取内网ip
this.getIP((ip) => {console.log('内网ip', ip);
});getIP(onNewIP) {// 获取用户IP地址let MyPeerConnection =window.RTCPeerConnection ||window.mozRTCPeerConnection ||window.webkitRTCPeerConnection;let pc = new MyPeerConnection({iceServers: [],});let noop = () => {};let localIPs = {};let ipRegex =/([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g;let iterateIP = (ip) => {if (!localIPs[ip]) onNewIP(ip);localIPs[ip] = true;};pc.createDataChannel('');pc.createOffer().then((sdp) => {sdp.sdp.split('\n').forEach(function (line) {if (line.indexOf('candidate') < 0) return;line.match(ipRegex).forEach(iterateIP);});pc.setLocalDescription(sdp, noop, noop);}).catch((reason) => {});pc.onicecandidate = (ice) => {if (!ice ||!ice.candidate ||!ice.candidate.candidate ||!ice.candidate.candidate.match(ipRegex))return;ice.candidate.candidate.match(ipRegex).forEach(iterateIP);};},

判断手机类型

const u = navigator.userAgent,
app = navigator.appVersion;
let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; // 安卓
let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
//isAndroid和 isIOS是boolean类型

与安卓交互

created() {window.appToLocation = this.appToLocation; // 获取定位信息回调
}
methods: {
appToLocation(paramOne,paramTwo,paramThree,paramFour,paramFive,paramSix,paramSeven,paramEight) {console.log(paramOne,paramTwo,paramThree)},}

判断浏览器(移动端)

isWeixin() {//判断是否是微信内置浏览器return navigator.userAgent.indexOf('MicroMessenger') > 0;},//钉钉window.navigator.userAgent.includes('DingTalk')

前端通过高德api获取位置信息

1.引用(index.html)

<script type="text/javascript" src="https://webapi.amap.com/maps?
v=2.0&key=你自己的key&plugin=AMap.Geolocation"></script>

2.配置vue.config.js

chainWebpack: (config) => {config.resolve.alias.set('@', resolve('src')).set('@c', resolve('src/components')).set('@u', resolve('src/utils'))//高德config.externals({AMap: 'AMap',AMapUI: 'AMapUI',})},

3.获取位置信息

this.getMap().then((result) => {console.log('定位', result);
})getMap() {//前端获取位置信息return new Promise((resolve, reject) => {AMap.plugin('AMap.Geolocation', () => {var geolocation = new AMap.Geolocation({enableHighAccuracy: true,useNative: true,timeout: 10000,needAddress: true,});geolocation.getCityInfo((status, result) => {if (status === 'complete') {resolve(result);} else {reject(new Error('获取定位失败'));}});});});},

相关文章:

获取ip(公网和内网) 前端通过高德api获取位置信息

获取ip&#xff08;公网和内网&#xff09; 前端通过高德api获取位置信息 获取ip //获取公网ip getIp() {this.$axios.get(http://api.ipify.org).then((res) > {if (res) {console.log(res, 公网ip);}}).catch((e) > {console.log(e, e);}); },//获取内网ip this.getIP(…...

linux打开端口命令是什么

linux打开端口命令是什么 linux开启端口的命令是 1 firewall-cmd --zonepublic --add-port端口/通讯协议 --permanent 需要注意的是&#xff0c;我们在开启指定端口后需要重启防火墙。 示例如下&#xff1a; 1、开启防火墙 1 systemctl start firewalld 2、开放指定端…...

从《孤注一掷》出发,聊聊 SSL 证书的重要性

你去看《孤注一掷》了吗&#xff1f;相信最近大家的朋友圈和抖音都被爆火电影《孤注一掷》成功刷屏。取材于上万真实案例的《孤注一掷》揭露了缅甸诈骗园区残暴的统治&#xff0c;以及电信诈骗中系统性极强的诈骗技巧&#xff0c;引发了大量讨论。 图片来源于电影《孤注一掷》…...

专题:曲面的切平面、法线

假设曲面方程为隐函数 F ( x , y , z ) 0 &#xff0c;点 M ( x 0 , y 0 , z 0 ) 是其上一点 又在点 M 处任意引一条在曲面上的曲线&#xff0c;设该曲线参数方程为&#xff1a; { x φ ( t ) y ψ ( t ) z ω ( t ) &#xff0c;且当 t t 0 时&#xff0c; x x 0 , y y…...

数据结构:排序解析

文章目录 前言一、常见排序算法的实现1.插入排序1.直接插入排序2.希尔排序 2.交换排序1.冒泡排序2.快速排序1.hoare版2.挖坑版3.前后指针版4.改进版5.非递归版 3.选择排序1.直接选择排序2.堆排序 4.归并排序1.归并排序递归实现2.归并排序非递归实现 5.计数排序 二、排序算法复杂…...

Revit SDK:AutoJoin 自动合并体量

前言 Revit 有一套完整的几何造型能力&#xff0c;每一个体量都是一个GenericForm&#xff0c;这些体量可以通过拉伸、扫掠等创建。这个例子介绍如何将他们合并成一个体量。 内容 合并体量的关键接口&#xff1a; // Autodesk.Revit.DB.Document public GeomCombination Com…...

MYSQL(索引、事务)

文章目录 一、索引二、事务 一、索引 数据库中的表、数据、索引之间的关系&#xff0c;类似于书架上的图书、书籍内容和书籍目录的关系 1. 概述 概念&#xff1a;相当于是一本书的目录&#xff0c;是以‘列’为维度进行建立的使用场景&#xff1a;如果我们要查询一个表中的某个…...

部署问题集合(二十三)设置Docker容器内的中文字符集,解决某些情况下中文乱码的问题

前言&#xff1a; 同事给了一个服务&#xff0c;在Windows环境下怎么跑都正常&#xff0c;但一到Linux虚拟机里就中文乱码起初就想到了可能是字符集的问题&#xff0c;但调整了半天也没见效果&#xff0c;最后隔了几天突然想到&#xff0c;我是构建Docker跑的&#xff0c;而且…...

Web AP—PC端网页特效

PC端网页特效 代码下载 元素偏移量 offset 系列 offset 翻译过来就是偏移量&#xff0c; 我们使用 offset系列相关属性可以动态的得到该元素的位置&#xff08;偏移&#xff09;、大小等。 获得元素距离带有定位父元素的位置获得元素自身的大小&#xff08;宽度高度&#x…...

Spring线程池ThreadPoolTaskExecutor使用

为什么使用线程池&#xff1f; 降低系统资源消耗&#xff0c;通过重用已存在的线程&#xff0c;降低线程创建和销毁造成的消耗&#xff1b;提高系统响应速度&#xff0c;当有任务到达时&#xff0c;通过复用已存在的线程&#xff0c;无需等待新线程的创建便能立即执行&#xf…...

spring mvc的执行流程

请求拦截。用户发起请求&#xff0c;请求先被sevlet拦截&#xff0c;转发给spring mvc框架请求转发。spring mvc里面的DispcherServlet会接收到请求并转发给HandlerMapping匹配接口。HandlerMapping负责解析请求&#xff0c;根据请求信息和配置信息找到匹配的controller类&…...

docker作业

目录 1、使用mysql:5.6和 owncloud 镜像&#xff0c;构建一个个人网盘。 1.1启动镜像 1.2启动cloud镜像 1.3浏览器访问 ​编辑 2、安装搭建私有仓库 Harbor 2.1下载docker-compose 2.2 磁盘挂载&#xff0c;保存harbor 2.3 修改配置文件 2.4安装 2.5浏览器访问 2.6 新…...

java实现本地文件转文件流发送到前端

java实现本地文件转文件流发送到前端 Controller public void export(HttpServletResponse response) {// 创建file对象response.setContentType("application/octet-stream");// 文件名为 sresponse.setHeader("Content-Disposition", "attachment;…...

2020ICPC南京站

K K Co-prime Permutation 题意&#xff1a;给定n和k&#xff0c;让你构造n的排列&#xff0c;满足gcd(pi, i)1的个数为k。 思路&#xff1a;因为x和x-1互质&#xff0c;1和任何数互质&#xff0c;任何数和它本身不互质 当k为奇数时&#xff0c;p11&#xff0c;后面k-1个数…...

Linux 中的 chsh 命令及示例

介绍 bash shell 是 Linux 最流行的登录 shell 之一。但是,对于不同的命令行操作,可以使用替代方法。chshLinux 中的( change shell )命令使用户能够修改登录 shell 。 以下教程...

JavaScript 数组如何实现冒泡排序?

冒泡排序是一种简单但效率较低的排序算法&#xff0c;常用于对小型数据集进行排序。它的原理是多次遍历数组&#xff0c;比较相邻元素的大小&#xff0c;并根据需要交换它们的位置&#xff0c;将最大&#xff08;或最小&#xff09;的元素逐渐“冒泡”到数组的一端。这个过程会…...

ZooKeeper集群环境搭建

&#x1f947;&#x1f947;【大数据学习记录篇】-持续更新中~&#x1f947;&#x1f947; 个人主页&#xff1a;beixi 本文章收录于专栏&#xff08;点击传送&#xff09;&#xff1a;【大数据学习】 &#x1f493;&#x1f493;持续更新中&#xff0c;感谢各位前辈朋友们支持…...

【跟小嘉学 Rust 编程】二十、进阶扩展

系列文章目录 【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学…...

pytorch学习过程中一些基础语法

1、tensor.view()函数&#xff0c;通俗理解就是reshape&#xff0c;#参数这里的-1需要注意&#xff0c;可以根据原张量size自行计算 data1torch.randn((4,2)) data2data1.view(2,4) data3data2.view(-1,8)2、tensor.max()函数&#xff0c;在分类问题中&#xff0c;通常需要使用…...

判断聚类 n_clusters

目录 基本原理 代码实现&#xff1a; 肘部法则&#xff08;Elbow Method&#xff09;&#xff1a; 轮廓系数&#xff08;Silhouette Coefficient&#xff09; Gap Statistic&#xff08;间隙统计量&#xff09;&#xff1a; Calinski-Harabasz Index&#xff08;Calinski-…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...