获取本机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 动态修改样式和层叠样式表代码
Apr 27 Javascript
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
Aug 12 Javascript
浅谈JavaScript字符集
May 22 Javascript
jquery幻灯片插件bxslider样式改进实例
Oct 15 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
Mar 26 Javascript
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
Jan 09 Javascript
使用openSpeDiv方法实现Ecshop登录弹窗框效果
Mar 13 Javascript
使用Xcache缓存器加速PHP网站的配置方法
Apr 22 Javascript
React Native开发封装Toast与加载Loading组件示例
Sep 08 Javascript
React手稿之 React-Saga的详解
Nov 12 Javascript
layui 监听select选择 获取当前select的ID名称方法
Sep 24 Javascript
解决vue下载后台传过来的乱码流的问题
Dec 05 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简单系统数据添加以及数据删除模块源文件下载
2008/06/07 PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
2011/07/17 PHP
使用php判断浏览器的类型和语言的函数代码
2013/02/28 PHP
用php简单实现加减乘除计算器
2014/01/06 PHP
PHP程序员的技术成长规划
2016/03/25 PHP
jqueyr判断checkbox组的选中(示例代码)
2013/11/08 Javascript
Javascript设置对象的ReadOnly属性(示例代码)
2013/12/25 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
2014/05/27 Javascript
jQuery基础语法实例入门
2014/12/23 Javascript
JavaScript中的变量作用域介绍
2014/12/31 Javascript
js使用心得分享
2015/01/13 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
2015/06/11 Javascript
仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件
2016/07/01 Javascript
JQ选择器_选择同类元素的第N个子元素的实现方法
2016/09/08 Javascript
React Native实现简单的登录功能(推荐)
2016/09/19 Javascript
原生js实现网页顶部自动下拉/收缩广告效果
2017/01/20 Javascript
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
javascript 中模板方法单例的实现方法
2017/10/17 Javascript
vue实现按需加载组件及异步组件功能
2019/05/27 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
2019/08/06 Javascript
[49:21]TNC vs VG 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第三场 8.20.mp4
2019/08/22 DOTA
python使用循环实现批量创建文件夹示例
2014/03/25 Python
Python中的特殊语法:filter、map、reduce、lambda介绍
2015/04/14 Python
python reduce 函数使用详解
2017/12/05 Python
Python实现网站表单提交和模板
2019/01/15 Python
python字符串分割及字符串的一些常规方法
2019/07/24 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
使用python脚本自动生成K8S-YAML的方法示例
2020/07/12 Python
Python的collections模块真的很好用
2021/03/01 Python
如果让你测试一台高速激光打印机,你都会进行哪些测试
2012/12/04 面试题
求职简历的自我评价怎样写好
2013/10/07 职场文书
新书吧创业计划书
2014/01/31 职场文书
就业协议书
2014/09/12 职场文书
2016国庆促销广告语
2016/01/28 职场文书
2016年圣诞节义工活动总结
2016/04/01 职场文书
《亲亲我的妈妈》观后感(3篇)
2019/09/26 职场文书