获取本机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 相关文章推荐
使用正则替换变量
May 05 Javascript
javascript web页面刷新的方法收集
Jul 02 Javascript
jquery 插件开发备注
Aug 27 Javascript
jQuery中实现动画效果的基本操作介绍
Apr 16 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
Apr 15 Javascript
JavaScript实现简单Tip提示框效果
Apr 20 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
Jun 14 Javascript
js的OOP继承实现(必看篇)
Feb 18 Javascript
用JS实现根据当前时间随机生成流水号或者订单号
May 31 Javascript
vuecli3.x中轻松4步带你使用tinymce的步骤
Jun 25 Javascript
使用Typescript开发微信小程序的步骤详解
Jan 12 Javascript
JavaScript利用html5新方法操作元素类名详解
Nov 27 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+DBM的同学录程序(1)
2006/10/09 PHP
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
2011/08/02 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
初识PHP
2014/09/28 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
JQuery 入门实例1
2009/06/25 Javascript
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
JS小游戏之象棋暗棋源码详解
2014/09/25 Javascript
jQuery中remove()方法用法实例
2014/12/25 Javascript
jquery常用函数与方法汇总
2015/09/01 Javascript
详解JavaScript中localStorage使用要点
2016/01/13 Javascript
javascript实现数组去重的多种方法
2016/03/14 Javascript
AngularJS控制器之间的通信方式详解
2016/11/03 Javascript
jQuery基于排序功能实现上移、下移的方法
2016/11/26 Javascript
微信小程序三级联动地址选择器的实例代码
2017/07/12 Javascript
浅谈Python 字符串格式化输出(format/printf)
2016/07/21 Python
浅谈python对象数据的读写权限
2016/09/12 Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
2019/04/16 Python
python自制包并用pip免提交到pypi仅安装到本机【推荐】
2019/06/03 Python
HTML5+CSS3绘制锯齿状的矩形
2016/03/01 HTML / CSS
JBL英国官网:JBL UK
2018/07/04 全球购物
医院护士求职自荐信格式
2013/09/21 职场文书
户外用品商店创业计划书
2014/01/29 职场文书
主办会计岗位职责
2014/03/13 职场文书
通用自荐信范文
2014/03/14 职场文书
设计师求职信模板
2014/05/06 职场文书
本溪水洞导游词
2015/02/11 职场文书
2015年施工员工作总结范文
2015/04/20 职场文书
2015年信息中心工作总结
2015/05/25 职场文书
小学教师教育随笔
2015/08/14 职场文书
pytorch 带batch的tensor类型图像显示操作
2021/05/20 Python
nginx服务器的下载安装与使用详解
2021/08/02 Servers
JAVA API 实用类 String详解
2021/10/05 Java/Android
instantclient客户端 连接oracle数据库
2022/04/26 Oracle