获取本机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中变量提升 Hoisting
Jul 03 Javascript
javascript动态控制服务器控件实例
Sep 05 Javascript
angularjs中的单元测试实例
Dec 06 Javascript
JavaScript返回网页中锚点数目的方法
Apr 03 Javascript
防止重复发送 Ajax 请求
Feb 15 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
May 02 Javascript
Vue异步组件处理路由组件加载状态的解决方案
Sep 07 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
Nov 09 Javascript
JavaScript仿京东秒杀倒计时
Mar 17 Javascript
详解JavaScript 作用域
Jul 14 Javascript
Vue仿百度搜索功能
Dec 28 Vue.js
如何理解Vue前后端数据交互与显示
May 10 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设计模式 Bridge (桥接模式)
2011/06/26 PHP
css动画效果之animation的常用样式
2021/03/09 HTML / CSS
window.showModalDialog使用手册
2007/01/11 Javascript
javascript 新浪背投广告实现代码
2009/07/07 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
用javascript判断IE版本号简单实用且向后兼容
2013/09/11 Javascript
用jquery统计子菜单的条数示例代码
2013/10/18 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
详细分析JavaScript函数定义
2015/07/16 Javascript
jQuery插件echarts实现的单折线图效果示例【附demo源码下载】
2017/03/04 Javascript
详解如何用模块化的方式写vuejs
2017/12/16 Javascript
javascript连接mysql与php通过odbc连接任意数据库的实例
2017/12/27 Javascript
垃圾回收器的相关知识点总结
2018/05/13 Javascript
Vue表单输入绑定的示例代码
2018/11/01 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
vue实现在线学生录入系统
2020/05/30 Javascript
[47:35]VP vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
一个简单的python程序实例(通讯录)
2013/11/29 Python
浅析python 内置字符串处理函数的使用方法
2014/06/11 Python
Python字符串切片操作知识详解
2016/03/28 Python
Python中标准模块importlib详解
2017/04/16 Python
Python中常见的异常总结
2018/02/20 Python
Flask框架URL管理操作示例【基于@app.route】
2018/07/23 Python
python读取word文档,插入mysql数据库的示例代码
2018/11/07 Python
Python使用enumerate获取迭代元素下标
2020/02/03 Python
关于Python Tkinter Button控件command传参问题的解决方式
2020/03/04 Python
Python APScheduler执行使用方法详解
2020/12/10 Python
数据库方面面试题
2012/04/22 面试题
电工工作职责范本
2014/02/22 职场文书
质量保证书范本
2014/04/29 职场文书
村居抓节水倡议书
2014/05/19 职场文书
尊师重教演讲稿
2014/09/04 职场文书
暑期工社会实践报告
2015/07/13 职场文书
Python的这些库,你知道多少?
2021/06/09 Python
Python中使用tkFileDialog实现文件选择、保存和路径选择
2022/05/20 Python
Win11无法安装更新补丁KB3045316怎么办 附KB3045316补丁修复教程
2022/08/14 数码科技