js获取设备内网ip
可以直接使用,不需要导入其他配置
看代码
1 <script>
2 //获取内网ip
3 var RTCPeerConnection = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection;
4 if (RTCPeerConnection) (
5 function () {
6 var rtc = new RTCPeerConnection({iceServers:[]});
7 if (1 || window.mozRTCPeerConnection) {
8 rtc.createDataChannel('', {reliable:false});
9 };
10
11 rtc.onicecandidate = function (evt) {
12 if (evt.candidate) grepSDP("a="+evt.candidate.candidate);
13 };
14 rtc.createOffer(function (offerDesc) {
15 grepSDP(offerDesc.sdp);
16 rtc.setLocalDescription(offerDesc);
17 }, function (e) { console.warn("offer failed", e); });
18 var addrs = Object.create(null);
19 addrs["0.0.0.0"] = false;
20 function updateDisplay(newAddr) {
21 if (newAddr in addrs) return;
22 else addrs[newAddr] = true;
23 var displayAddrs = Object.keys(addrs).filter(function (k) { return addrs[k]; });
24 for(var i = 0; i < displayAddrs.length; i++){
25 if(displayAddrs[i].length > 16){
26 displayAddrs.splice(i, 1);
27 i--;
28 }
29 }
30 //打印出该设备连接的所有内网ip
31 console.log(displayAddrs);
32 //排第一个ip
33 console.log(displayAddrs[0]);
34 }
35 function grepSDP(sdp) {
36 var hosts = [];
37 sdp.split('\r\n').forEach(function (line, index, arr) {
38 if (~line.indexOf("a=candidate")) {
39 var parts = line.split(' '),
40 addr = parts[4],
41 type = parts[7];
42 if (type === 'host') updateDisplay(addr);
43 } else if (~line.indexOf("c=")) {
44 var parts = line.split(' '),
45 addr = parts[2];
46 updateDisplay(addr);
47 }
48 });
49 }
50 })();
51 else{
52 console.log("请使用主流浏览器:chrome,firefox,opera,safari");
53 }
54
55 </script>
测试结果:

js获取设备内网ip的更多相关文章
- 通过js获取计算机内网ip,计算机名,mac地址
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- Android 获取本地外网IP、内网IP、计算机名等信息
一.获取本地外网IP public static String GetNetIp() { URL infoUrl = null; InputStream inStream = null; try { ...
- 获取本地内网和外网IP地址
public class IPUtil { /// <summary> /// 获取本地内网IP /// </summary> /// <returns></ ...
- JAVA获取访问者的内网IP地址
/** * 获取访问者内网IP * @return the server ip */ public static String getIntranetIp() { // 本地IP,如果没有配置外网IP ...
- Nacos-服务注册地址为内网IP的解决办法
最近在使用Spring Cloud Alibaba这一套微服务解决方案,但是在服务注册的时候,网关死活找不到微服务地址,自己的微服务通过网关怎么也访问不到. 查找原因 仔细一查才发现,网关去访问了一个 ...
- 通过js获取内网ip和外网ip的简单方法 ...
今天遇到了一个需求,需要获取用户当前的内网ip, 找了半天终于找到了方法,遂将找到的方法记录下来,留给需要的人. 1,获取内网ip function getIP(callback) { let rec ...
- (转)js获取内网ip地址,操作系统,浏览器版本等信息
这次呢,说一下使用js获取用户电脑的ip信息,刚开始只是想获取用户ip,后来就顺带着获取了操作系统和浏览器信息. 先说下获取用户ip地址,包括像ipv4,ipv6,掩码等内容,但是大部分都要根据浏览器 ...
- xss实现获取内网ip
前提得浏览器支持webRTC,测试的时候google浏览器测试成功,火狐浏览器不支持webRTC, 再在xss平台直接复制如下js代码: function form_ip(ip,port){ var ...
- 根据Request获取客户端IP 内网IP及外网IP
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr() ,这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实 ...
随机推荐
- 【HarmonyOS】【多线程与并发】EventHandler
EventHandler与EventRunner EventHandler相关概念 ● EventHandler是一种用户在当前线程上投递InnerEvent事件或者Runnable任务到异步线程上处 ...
- Java中利用正则表达式获取一个网页中的所有邮箱地址
package cn.tms.ui; import java.io.BufferedReader; import java.io.File; import java.io.FileWriter; im ...
- 如何用CodeBlocks调试?
一.简介 这篇文章我主要会介绍CodeBlocks的调试功能,并简单讲述如何使用它. 二.前言 大家好,最近和小伙伴们讨论修改程序的时候,我突然想到,授人以鱼不如授人以渔(指调试),于是这篇文章应运而 ...
- css预处理器和css Modules是干嘛的?
CSS预处理器 1.css和js的区别 js是编程语言,它可以声明变量,编写逻辑.而css实际上只是个"表",表头是选择器,内容是里面的样式.它并不能写逻辑啥的.也就是说,对于cs ...
- Windows下安装xampp的PHP扩展(redis为例)
(1)PHP的windowns扩展下载网址:https://windows.php.net/downloads/pecl/releases/ (2)Ctrl+f查询你要下载的扩展名 注意:扩展的版本要 ...
- [ZJCTF 2019]EasyHeap | house of spirit 调试记录
BUUCTF 上的题目,由于部分环境没有复现,解法是非期望的 house of spirit 第一次接触伪造堆的利用方式,exp 用的是 Pwnki 师傅的,本文为调试记录及心得体会. 逆向分析的过程 ...
- 使用.NET 6开发TodoList应用(4)——引入数据存储
需求 作为后端CRUD程序员(bushi,数据存储是开发后端服务一个非常重要的组件.对我们的TodoList项目来说,自然也需要配置数据存储.目前的需求很简单: 需要能持久化TodoList对象并对其 ...
- ICCV2021 | Tokens-to-Token ViT:在ImageNet上从零训练Vision Transformer
前言 本文介绍一种新的tokens-to-token Vision Transformer(T2T-ViT),T2T-ViT将原始ViT的参数数量和MAC减少了一半,同时在ImageNet上从 ...
- CF135A Replacement 题解
Content 有 \(n\) 个数 \(a_1,a_2,a_3,...,a_n\),试用 \(1\) ~ \(10^9\) 之间的数(除了本身)代替其中的一个数,使得这 \(n\) 个数的总和最小, ...
- 大学MOOC课程视频下载、流文件合并、批量重命名、b站视频下载及学习课程视频推荐
计算机行业技术更新快,编程语言种类多,在当今大数据和人工智能的时代,为了能在相关领域有所成就,就必须掌握好python.R等语言,较好的数学基础和深入的行业背景知识.计算机从业人员务必践行" ...