获取本机IP地址的实例(JavaScript / Node.js)


Posted in Javascript onNovember 24, 2017

--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)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript document.referrer 用法
Apr 30 Javascript
js change,propertychange,input事件小议
Dec 20 Javascript
jquery批量控制form禁用的代码
Aug 06 Javascript
JavaScript父子窗体间的调用方法
Mar 31 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
Jan 21 Javascript
jQuery实现div拖拽效果实例分析
Feb 20 Javascript
JavaScript中原型链存在的问题解析
Sep 25 Javascript
React实现点击删除列表中对应项
Jan 10 Javascript
JavaScript无阻塞加载和defer、async详解
Feb 26 Javascript
详解Vue.js中.native修饰符
Apr 24 Javascript
原生JS实现简单的无缝自动轮播效果
Sep 26 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
Sep 17 Javascript
js判断数组是否包含某个字符串变量的实例
Nov 24 #Javascript
最新Javascript程序员面试试题和解题方法
Nov 23 #Javascript
详解bootstrap导航栏.nav与.navbar区别
Nov 23 #Javascript
Vue添加请求拦截器及vue-resource 拦截器使用
Nov 23 #Javascript
bootstrap datetimepicker控件位置异常的解决方法
Nov 23 #Javascript
Bootstrap 3多级下拉菜单实例
Nov 23 #Javascript
bootstrap实现二级下拉菜单效果
Nov 23 #Javascript
You might like
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
PHP遍历数组的方法汇总
2015/04/30 PHP
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
javascript 匿名函数的理解(透彻版)
2010/01/28 Javascript
js 数组克隆方法 小结
2010/03/20 Javascript
如何在JavaScript中实现私有属性的写类方式(二)
2013/12/04 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
2014/01/28 Javascript
jQuery实现订单提交页发送短信功能前端处理方法
2016/07/04 Javascript
Bootstrap面板使用方法
2017/01/16 Javascript
非常实用的vue导航钩子
2017/03/20 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
JavaScript基础进阶之数组方法总结(推荐)
2017/09/04 Javascript
详解JavaScript作用域和作用域链
2019/03/19 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
vue+animation实现翻页动画
2020/06/29 Javascript
深入了解JavaScript词法作用域
2020/07/29 Javascript
javascript实现下拉菜单效果
2021/02/09 Javascript
python端口扫描系统实现方法
2014/11/19 Python
Python编程之黑板上排列组合,你舍得解开吗
2017/10/30 Python
查看python安装路径及pip安装的包列表及路径
2019/04/03 Python
pyqt5 comboBox获得下标、文本和事件选中函数的方法
2019/06/14 Python
python 画二维、三维点之间的线段实现方法
2019/07/07 Python
python将字母转化为数字实例方法
2019/10/04 Python
python自动化测试无法启动谷歌浏览器问题
2019/10/10 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
Python list运算操作代码实例解析
2020/01/20 Python
Python识别验证码的实现示例
2020/09/30 Python
Django实现随机图形验证码的示例
2020/10/15 Python
Coltorti Boutique官网:来自意大利的设计师品牌买手店
2018/11/09 全球购物
我们的节日端午节活动方案
2014/03/02 职场文书
白血病募捐倡议书
2014/05/14 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
2015年行政人事工作总结
2015/05/21 职场文书
学校运动会简讯
2015/07/20 职场文书
决心书格式范文
2015/09/23 职场文书
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang