获取本机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 相关文章推荐
将函数的实际参数转换成数组的方法
Jan 25 Javascript
JS中confirm,alert,prompt函数区别分析
Jan 17 Javascript
浅谈JavaScript 框架分类
Nov 10 Javascript
使用js画图之饼图
Jan 12 Javascript
JavaScript获取指定元素位置的方法
Apr 08 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
Oct 01 Javascript
详解JavaScript时间格式化
Dec 23 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
Mar 01 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
Apr 11 Javascript
bootstrap时间控件daterangepicker使用方法及各种小bug修复
Oct 25 Javascript
详解React开发必不可少的eslint配置
Feb 05 Javascript
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
Sep 07 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+memcache实现的网站在线人数统计代码
2014/07/04 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
2015/12/14 PHP
js自带函数备忘 数组
2006/12/29 Javascript
js玩一玩WSH吧
2007/02/23 Javascript
解析arp病毒背后利用的Javascript技术附解密方法
2007/08/06 Javascript
js 禁止选择功能实现代码(兼容IE/Firefox)
2010/04/23 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
JS动态添加iframe的代码
2015/09/14 Javascript
鼠标点击input,显示瞬间的边框颜色,对之修改与隐藏实例
2016/12/26 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
微信小程序微信支付接入开发实例详解
2017/04/12 Javascript
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
Vue render深入开发讲解
2018/04/13 Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
2018/05/23 Javascript
详解webpack-dev-server使用方法
2018/09/14 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
解决layui下拉框监听问题(监听不到值的变化)
2019/09/28 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
如何构建一个Vue插件并生成npm包
2020/10/26 Javascript
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
Python+Opencv识别两张相似图片
2020/03/23 Python
Python下应用opencv 实现人脸检测功能
2019/10/24 Python
Python列表list操作相关知识小结
2020/01/29 Python
Python使用tkinter实现小时钟效果
2021/02/22 Python
Html5之自定义属性(data-,dataset)
2019/11/19 HTML / CSS
购买大码女装:Lane Bryant
2016/09/07 全球购物
英国豪华家具和经典家居饰品购物网站:OKA
2020/06/05 全球购物
C面试题
2015/10/08 面试题
无偿献血倡议书
2014/04/14 职场文书
教师工作能力自我评价
2015/03/04 职场文书
2015年度优秀员工获奖感言
2015/07/31 职场文书
合理缓解职场压力,让你随时保持最佳状态!
2019/06/21 职场文书
祝福语集锦:给满月宝宝的祝福语
2019/11/20 职场文书
使用 DataAnt 监控 Apache APISIX的原理解析
2022/07/07 Servers
zabbix如何添加监控主机和自定义监控项
2022/08/14 Servers