获取本机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 相关文章推荐
js 提交和设置表单的值
Dec 19 Javascript
文本框(input)获取焦点(onfocus)时样式改变的示例代码
Jan 10 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
Sep 01 Javascript
JavaScript中用toString()方法返回时间为字符串
Jun 12 Javascript
Javascript 6里的4个新语法
Aug 25 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
Mar 30 Javascript
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
Aug 29 Javascript
javascript获取元素的计算样式
May 24 Javascript
微信小程序之 catalog 切换实现解析
Sep 12 Javascript
JavaScript算法学习之冒泡排序和选择排序
Nov 02 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
Jul 19 Javascript
js动态生成表格(节点操作)
Jan 12 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
WindowsXP中快速配置Apache+PHP5+Mysql
2008/06/05 PHP
基于php和mysql的简单的dao类实现crud操作功能
2014/01/27 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
2019/05/09 PHP
php使用curl模拟多线程实现批处理功能示例
2019/07/25 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
火狐浏览器(firefox)下获得Event对象以及keyCode
2008/11/13 Javascript
基于jQuery的可以控制左右滚动及自动滚动效果的代码
2010/07/25 Javascript
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
node.js中格式化数字增加千位符的几种方法
2015/07/03 Javascript
js实现超简单的展开、折叠目录代码
2015/08/28 Javascript
Javascript基础_简单比较undefined和null 值
2016/06/14 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
react router 4.0以上的路由应用详解
2017/09/21 Javascript
解决vue props 拿不到值的问题
2018/09/11 Javascript
vue项目中引入Sass实例方法
2019/08/27 Javascript
解决vue2中使用elementUi打包报错的问题
2020/09/22 Javascript
[44:39]2014 DOTA2国际邀请赛中国区预选赛 NE VS CNB
2014/05/21 DOTA
Python简单调用MySQL存储过程并获得返回值的方法
2015/07/20 Python
python中字符串内置函数的用法总结
2018/09/13 Python
详解python中的time和datetime的常用方法
2019/07/08 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
2020/07/28 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
2020/10/15 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
python3.8.3安装教程及环境配置的详细教程(64-bit)
2020/11/28 Python
英国受欢迎的运动鞋和街头服装商店:Footasylum
2018/06/12 全球购物
大学生自我鉴定评语
2014/01/27 职场文书
管理失职检讨书
2014/02/12 职场文书
善意的谎言事例
2014/02/15 职场文书
2014两会学习心得:时代的发展
2014/03/17 职场文书
网络营销策划方案
2014/06/04 职场文书
入股合作协议书
2014/10/12 职场文书
离婚纠纷代理词
2015/05/23 职场文书
离婚案件原告代理词
2015/05/23 职场文书
tomcat正常启动但网页却无法访问的几种解决方法
2022/05/06 Servers