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等反向代理软件就不能获取到客户端的真实 ...
随机推荐
- Nginx区分搜索引擎
目录 一.简介 二.配置 一.简介 场景: 当从百度点进来显示中文页面,而谷歌显示英文界面. 原理: 根据referer头来判断 二.配置 这样配置以后,凡是从百度或者google点过来的请求都会跳转 ...
- 【划重点】Python xlwt简介和用法
一.导入xlwt包,并初始化创建一个工作簿 import xlwt workbook=xlwt.Workbook() # 初始化创建一个工作簿 二.创建表单 sheet1=workbook.add_s ...
- [Java Web 王者归来]读书笔记3
第四章 JSP JSP基本语法 1 JSP中嵌入Java 代码 <% Java code %> 2 JSP中输出 <%= num %> 3 JSP 中的注释 <%-- - ...
- 建立资源的方法(Project)
<Project2016 企业项目管理实践>张会斌 董方好 编著 终于,进入第5章资源计划编制了,所以就不能还在任务工作表里厮混了是吧,那就先进入资源工作表吧:[任务]>[甘特图]& ...
- 异步FIFO总结+Verilog实现
异步FIFO简介 异步FIFO(First In First Out)可以很好解决多比特数据跨时钟域的数据传输与同步问题.异步FIFO的作用就像一个蓄水池,用于调节上下游水量. FIFO FIFO是一 ...
- CF152A Marks 题解
Content 有 \(n\) 名学生考了 \(m\) 门科目,各得到了自己的成绩单.如果第 \(i\) 个学生的第 \(j\) 个科目的分数 \(a_{i,j}\) 在所有学生中是最高的,那么我们就 ...
- ligerui有时候竖直的线没对齐,是因为某一列的内容太长,此刻可以调整一下此列的宽度为适当的值便可消除此现象
ligerui有时候竖直的线没对齐,是因为某一列的内容太长,此刻可以调整一下此列的宽度为适当的值便可消除此现象
- SpringBoot整合websocket简单示例
依赖 <!-- springboot整合websocket --> <dependency> <groupId>org.springframework.boot&l ...
- JAVA获取多个经纬度的中心点
import java.util.LinkedList; public class Test1 { /** * 位置实体类,根据自己的来即可 */ static class Position{ /** ...
- c++11之字符串格式化
1.关于 我知道的,C++20中引入了相当方便的字符串格式化,有兴趣的朋友,可以看下fmt库,截至目前,它实现了c++20中引入的字符串格式化绝大部分功能. 2.format 既然c++11中没有方便 ...