function getYourIP(){const RTCPeerConnection = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnectio" />
当前位置:首页 > 日记 > 正文

获取本机IP地址的实例 | JavaScript / Node.js

获取本机IP地址的实例 | JavaScript / Node.js

--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)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

相关文章

新建WPS文字格式文件的方法有哪些

新建WPS文字格式文件的方法有哪些

文字,方法,格式文件,三种,有哪些,  熟练掌握新建WPS文字格式文件的方法,不但方便操作,还可以提高自己对文件使用的效率。以下是小编为您带来的关于三种新建WPS文字格式文件的方法,希望对您有所帮助。三种新建WPS文字格式文件的方法在WPS文字…

微信语音怎么转发出去微信语音转发

微信语音怎么转发出去微信语音转发

转发,语音,方法,步骤,电脑软件,  你知道吗,微信不仅支持聊天记录中的文字转发,就连语音也支持转发给其他好友哦!你知道微信语音怎么转发出去吗?那就让 小编教教大家微信语音怎么转发给好友吧!微信语音转发出去的方法步骤1、按住微信需要转发…

js事件冒泡与事件捕获详解

js事件冒泡与事件捕获详解

事件冒泡,事件捕获,详解,电脑软件,js,(一)事件绑定1.普通事件绑定给html添加一个以on开头的特定的属性(如onclick,onfocus);<button id="A" onclick="alert(this.id)">方式一</button><button id="A" onclick="handler(this)">方式二</b…

在vue中获取dom元素内容的方法

在vue中获取dom元素内容的方法

方法,元素,内容,电脑软件,vue,在vue中可以通过给标签加ref属性,就可以在js中利用ref去引用它,从而操作该dom元素,以下是个例子,可以当做参考<template> <div> <div id="box" ref="mybox"> DEMO </div> </div> </template> <scrip…

详解使用vue-router进行页面切换时

详解使用vue-router进行页面切换时

位置,滚动条,页面切换,监听事件,详解,按照正常的产品逻辑,我们在进行页面切换时滚动条应该是在页面顶部的,可是。。。在使用vue-router进行页面切换时,发现滚动条所处的位置被自动记录了下来,且在另一个组件内定义的滚动监听事件仍会运行,着实吃…

JavaScript之Canvas_动力节点Java

JavaScript之Canvas_动力节点Java

学院,节点,动力,电脑软件,JavaScript,Canvas是HTML5新增的组件,它就像一块幕布,可以用JavaScript在上面绘制各种图表、动画等。没有Canvas的年代,绘图只能借助Flash插件实现,页面不得不用JavaScript和Flash进行交互。有了Canvas,我们就再也不需…

vue2.0开发入门笔记之.vue文件的生

vue2.0开发入门笔记之.vue文件的生

文件,入门,笔记,电脑软件,vue,这几天新项目用vue2.0开发,由于之前没用过vue,拿到项目框架看到都是.vue文件,不知道怎么用,以下是关于.vue文件的发现:1、一个.vue文件是一个封装的组件,在.vue文件里可以写 html, css, js其中template 中写html 代…

jQuery实现的手风琴侧边菜单效果

jQuery实现的手风琴侧边菜单效果

菜单,手风琴,侧边,效果,电脑软件,本文实例讲述了jQuery实现的手风琴侧边菜单效果。分享给大家供大家参考,具体如下:动手做了一个简单手风琴菜单,上图:点击 B 可收缩 C 列表,点击 C 改变自身和父节点 B 的样式,悬浮时均有不同的样式改变。先看页面…

js设计模式之结构型享元模式详解

js设计模式之结构型享元模式详解

享元模式,设计模式,结构型,详解,电脑软件,运用共享技术有效地支持大量的细粒度的对象,避免对象间拥有相同内容造成多余的开销。享元模式主要是对其数据、方法共享分离,将数据和方法分成内部数据、内部方法和外部数据、外部方法。内部方法与内…

jQuery点击头像上传并预览

jQuery点击头像上传并预览

头像上传,电脑软件,jQuery,先给大家展示下效果图: HTML代码<div class="img_show img_show1"> <img src="img2/img06.jpg" width="103" height="103" alt=""> <input type="file" class="upfile" accept="*/*"></div>jQue…

http200、301、304等状态码详解

http200、301、304等状态码详解

状态码,详解,电脑软件,当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求HTTP状态码的英文为HTTP Status…

React中jquery引用的实现方法

React中jquery引用的实现方法

方法,引用,电脑软件,React,jquery,在React中引用Jquery比较好玩,获取元素的数据更多1.引入方法举例:import $ from 'jquery';import { Button } from 'antd';class testJquery extends React.Component {  constructor(props) {   …