获取本机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字符串String和Array操作的有趣方法
Dec 18 Javascript
js实现鼠标悬浮给图片加边框的方法
Jan 30 Javascript
超漂亮的jQuery图片轮播特效
Nov 24 Javascript
极易被忽视的javascript面试题七问七答
Feb 15 Javascript
JavaScript中Form表单技术汇总(推荐)
Jun 26 Javascript
JS代码实现百度地图 画圆 删除标注
Oct 12 Javascript
node.JS二进制操作模块buffer对象使用方法详解
Feb 06 Javascript
ES6 Generator基本使用方法示例
Jun 06 Javascript
javascript canvas时钟模拟器
Jul 13 Javascript
ant design vue中日期选择框混合时间选择器的用法说明
Oct 27 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
Dec 01 Vue.js
JavaScript实现复选框全选功能
Apr 11 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中使用接口实现工厂设计模式的代码
2012/06/17 PHP
JS获取IUSR_机器名和IWAM_机器名帐号的密码
2006/12/06 Javascript
JQuery浮动DIV提示信息并自动隐藏的代码
2010/08/29 Javascript
JS左右无缝滚动(一般方法+面向对象方法)
2012/08/17 Javascript
JS中setTimeout()的用法详解
2013/04/14 Javascript
Javscript删除数组中指定元素并返回新数组
2014/03/06 Javascript
jquery实现pager控件示例
2014/04/09 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
将angular-ui的分页组件封装成指令的方法详解
2017/05/10 Javascript
深究AngularJS之ui-router详解
2017/06/13 Javascript
JS实现的JSON数组去重算法示例
2018/04/11 Javascript
基于Vue+element-ui 的Table二次封装的实现
2018/07/20 Javascript
vue如何解决循环引用组件报错的问题
2018/09/22 Javascript
uni-app微信小程序登录授权的实现
2020/05/22 Javascript
浅谈vue 组件中的setInterval方法和window的不同
2020/07/30 Javascript
python获取Linux下文件版本信息、公司名和产品名的方法
2014/10/05 Python
使用Protocol Buffers的C语言拓展提速Python程序的示例
2015/04/16 Python
Python使用回溯法子集树模板解决迷宫问题示例
2017/09/01 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
2018/05/30 Python
Python简单计算给定某一年的某一天是星期几示例
2018/06/27 Python
Python matplotlib生成图片背景透明的示例代码
2019/08/30 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
2020/02/09 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
2020/02/25 Python
Python扫描端口的实现
2021/01/25 Python
雪花秀美国官方网站:韩国著名草本护肤化妆品品牌
2016/10/19 全球购物
The Beach People美国:澳洲海滨奢华品牌
2018/07/05 全球购物
法国一家多品牌成衣精品中/高档商店:Graduate Store
2019/08/28 全球购物
编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
2014/01/07 面试题
大四自我鉴定
2014/02/08 职场文书
学生会部长竞聘书
2014/03/31 职场文书
竞选学习委员演讲稿
2014/04/28 职场文书
幼儿园辞职信范文
2015/02/27 职场文书
活动简报范文
2015/07/22 职场文书
2016教师读书思廉心得体会
2016/01/23 职场文书
JS新手入门数组处理的实用方法汇总
2021/04/07 Javascript
2022年四月新番
2022/03/15 日漫