请问怎么用js获取本地ip地址啊,并进行ip对比,比方说如果不是220.220.1.x的范围的地址,就可以获取一个提醒。或者我对某个页面就进行隐藏
7条回答 默认 最新
- qq_37749055 2023-03-17 09:13关注
const getIPs = (callback) => { var ip_dups = {}; var RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; var useWebKit = !!window.webkitRTCPeerConnection; var mediaConstraints = { optional: [{ RtpDataChannels: true }] }; // 这里就是需要的ICEServer了 var servers = { iceServers: [ { urls: "stun:stun.services.mozilla.com" }, { urls: "stun:stun.l.google.com:19302" }, ] }; var pc = new RTCPeerConnection(servers, mediaConstraints); function handleCandidate(candidate) { var ip_regex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/ var hasIp = ip_regex.exec(candidate) if (hasIp) { var ip_addr = ip_regex.exec(candidate)[1]; if (ip_dups[ip_addr] === undefined) callback(ip_addr); ip_dups[ip_addr] = true; } } // 网络协商的过程 pc.onicecandidate = function (ice) { if (ice.candidate) { handleCandidate(ice.candidate.candidate); } }; pc.createDataChannel(""); //创建一个SDP(session description protocol)会话描述协议 是一个纯文本信息 包含了媒体和网络协商的信息 pc.createOffer(function (result) { pc.setLocalDescription(result, function () { }, function () { }); }, function () { }); setTimeout(function () { var lines = pc.localDescription.sdp.split('\n'); lines.forEach(function (line) { if (line.indexOf('a=candidate:') === 0) handleCandidate(line); }); }, 1000); } getIPs((ip) => {console.log(ip)})
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 使用yolov5-7.0目标检测报错
- ¥15 对于这个问题的解释说明
- ¥200 询问:python实现大地主题正反算的程序设计,有偿
- ¥15 smptlib使用465端口发送邮件失败
- ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
- ¥15 对于squad数据集的基于bert模型的微调
- ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
- ¥20 steam下载游戏占用内存
- ¥15 CST保存项目时失败
- ¥20 java在应用程序里获取不到扬声器设备