1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 获取本机IP地址[JavaScript / Node.js]

获取本机IP地址[JavaScript / Node.js]

时间:2022-02-03 15:53:56

相关推荐

获取本机IP地址[JavaScript / Node.js]

--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 = workInterfaces().eth0;let localhost = null;for (let i = 0; i < eth0.length; i++){if (eth0[i].family == 'IPv4'){localhost = eth0[i].address;}}return localhost;}};

备注

引用作者的文章

原址

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。