获取本机IP地址的实例(JavaScript / Node.js)
更新时间:2017年11月24日 08:33:05 作者:铁柱成针
下面小编就为大家分享一篇使用JavaScript和Node.js获取本机IP地址的实例,具有很好的参考价值,希望对大家有所帮助
--web 客户端JavaScript
<!-- 调用方式 --> <body onload="checkCookie()"></body> function getYourIP() { const RTCPeerConnection = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection; if (RTCPeerConnection) (function() { const rtc = new RTCPeerConnection({iceServers: []}); if (1 || window.mozRTCPeerConnection) { rtc.createDataChannel('', {reliable: false}); } rtc.onicecandidate = function(evt) { if (evt.candidate) grepSDP(`a=${evt.candidate.candidate}`); }; rtc.createOffer(function(offerDesc) { grepSDP(offerDesc.sdp); rtc.setLocalDescription(offerDesc); }, function(e) {console.warn('offer failed', e);}); const addrs = Object.create(null); addrs['0.0.0.0'] = false; function updateDisplay(newAddr) { if (newAddr in addrs) return; addrs[newAddr] = true; const displayAddrs = Object.keys(addrs).filter(function(k) {return addrs[k];}); for (let i = 0; i < displayAddrs.length; i++) { if (displayAddrs[i].length > 16) { displayAddrs.splice(i, 1); i--; } } console.info('您的IP: ', displayAddrs[0]); } function grepSDP(sdp) { sdp.split('\r\n').forEach(function(line, index, arr) { if (~line.indexOf('a=candidate')) { const parts = line.split(' '), addr = parts[4], type = parts[7]; if (type === 'host') updateDisplay(addr); } else if (~line.indexOf('c=')) { const parts = line.split(' '), addr = parts[2]; updateDisplay(addr); } }); } })(); else { console.warn('请使用主流浏览器:chrome,firefox,opera,safari'); } }
--web服务端Node.js
const os = require('os'); module.exports = { getLocalIP : function() { const eth0 = os.networkInterfaces().eth0; let localhost = null; for (let i = 0; i < eth0.length; i++) { if (eth0[i].family == 'IPv4') { localhost = eth0[i].address; } } return localhost; }, };
以上这篇获取本机IP地址的实例(JavaScript / Node.js)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
layui radio点击事件实现input显示和隐藏的例子
今天小编就为大家分享一篇layui radio点击事件实现input显示和隐藏的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-09-09详解Html a标签中href和onclick用法、区别、优先级别
本文主要分享一篇关于Html A标签中href和onclick用法、区别、优先级别,具有很好的参考价值,有需要了解的朋友可以看看2017-01-01BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页
这篇文章主要介绍了BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)的相关资料,需要的朋友可以参考下2016-12-12
最新评论