javascript 获取本机ip chrome 谷歌浏览器 extension 谷歌扩展
代码一:
if (typeof window != 'undefined') { var RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; if (RTCPeerConnection)(() => { var rtc = new RTCPeerConnection() rtc.createDataChannel(''); //创建一个可以发送任意数据的数据通道 rtc.createOffer(offerDesc => { //创建并存储一个sdp数据 rtc.setLocalDescription(offerDesc) }, e => { console.log(e) }) rtc.onicecandidate = (evt) => { //监听candidate事件 if (evt.candidate) { console.log('evt:', evt.candidate) let ip_rule = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/ var ip_addr = ip_rule.exec(evt.candidate.candidate)[1] console.log('ip_addr:', ip_addr) //打印获取的IP地址 } } })() else { console.log("没有找到") } }
代码二:
function getLocalIPs(callback) { var ips = []; var RTCPeerConnection = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection; var pc = new RTCPeerConnection({ // Don't specify any stun/turn servers, otherwise you will // also find your public IP addresses. iceServers: [] }); // Add a media line, this is needed to activate candidate gathering. pc.createDataChannel(''); // onicecandidate is triggered whenever a candidate has been found. pc.onicecandidate = function (e) { if (!e.candidate) { // Candidate gathering completed. pc.close(); callback(ips); return; } var ip = /^candidate:.+ (\S+) \d+ typ/.exec(e.candidate.candidate)[1]; if (ips.indexOf(ip) == -1) // avoid duplicate entries (tcp/udp) ips.push(ip); }; pc.createOffer(function (sdp) { pc.setLocalDescription(sdp); }, function onerror() {}); }
如果获取到的格式为:xxxx-xxxx-xxxx-xxxx.local,则需要改下chrome的设置(默认隐藏了本机ip)
搜索chrome://flags/#enable-webrtc-hide-local-ips-with-mdns
将Anonymize local IPs exposed by WebRTC置为disabled
听说有些版本没有这个设置,那就得再继续找方案了~
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库