获取本机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面向对象编程
Mar 02 Javascript
JavaScript字符串String和Array操作的有趣方法
Dec 18 Javascript
JavaScript三元运算符的多种使用技巧
Apr 16 Javascript
解析javascript中鼠标滚轮事件
May 26 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
Jul 01 Javascript
js简单网速测试方法完整实例
Dec 15 Javascript
jQuery插件扩展extend的简单实现原理
Jun 24 Javascript
js removeChild 方法深入理解
Aug 16 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
Sep 30 Javascript
webpack打包js的方法
Mar 12 Javascript
vue-cli脚手架的.babelrc文件用法说明
Sep 11 Javascript
如何使用RoughViz可视化Vue.js中的草绘图表
Jan 30 Vue.js
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 验证图片生成函数
2009/05/21 PHP
php中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
PHP文件类型检查及fileinfo模块安装使用详解
2019/05/09 PHP
jQuery 获取对象 基本选择与层级
2010/05/31 Javascript
如何通过javascript操作web控件的自定义属性
2013/11/25 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
2015/02/02 Javascript
Jquery中CSS选择器用法分析
2015/02/10 Javascript
js实现倒计时及时间对象
2016/11/15 Javascript
NodeJS基础API搭建服务器详细过程记录
2017/04/01 NodeJs
Vue 2.0的数据依赖实现原理代码简析
2017/07/10 Javascript
vue-cli下的vuex的简单Demo图解(实现加1减1操作)
2018/02/26 Javascript
Vue仿支付宝支付功能
2018/05/25 Javascript
用JS实现根据当前时间随机生成流水号或者订单号
2018/05/31 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
2018/08/28 Javascript
详解JavaScript中typeof与instanceof用法
2018/10/24 Javascript
ES6 Map结构的应用实例分析
2019/06/26 Javascript
JavaScript字符串处理常见操作方法小结
2019/11/15 Javascript
使用 Opentype.js 生成字体子集的实例代码详解
2020/05/25 Javascript
[01:52]2014DOTA2西雅图邀请赛 V社开大会你不知道的小秘密
2014/07/08 DOTA
[01:54]TI4西雅图DOTA2选手欢迎晚宴 现场报道
2014/07/08 DOTA
python 循环遍历字典元素的简单方法
2016/09/11 Python
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
2018/12/19 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
利用Python实现朋友圈中的九宫格图片效果
2020/09/03 Python
Python之qq自动发消息的示例代码
2021/02/18 Python
一款利用纯css3实现的win8加载动画的实例分析
2014/12/11 HTML / CSS
Jeep牧马人、切诺基和自由人零配件:4 Wheel Drive Hardware
2017/07/02 全球购物
橄榄树药房:OLIVEDA
2019/09/01 全球购物
安德玛加拿大官网:Under Armour加拿大
2019/10/02 全球购物
八一建军节活动方案
2014/02/10 职场文书
五月的鲜花活动方案
2014/08/21 职场文书
2015年社会实践个人总结
2015/03/06 职场文书
前台接待员岗位职责
2015/04/15 职场文书
聊聊redis-dump工具安装问题
2022/01/18 Redis
25张裸眼3D图片,带你重温童年的记忆,感受3D的魅力
2022/02/06 杂记