获取本机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]的更多相关文章
- 获取本机IP地址
这里有两种方法: //获取本机IP - (NSString *)localIPAddress { NSString *localIP = nil; struct ifaddrs *addrs; ) { ...
- 关于是用dotnet获取本机IP地址+计算机名的方法
印象中在maxscript帮助文档里找到过方法,但是当时没记下来.只能通过dotnet实现了. 如果电脑有无线网卡和本地连接,可能会出现乱码,也问了写dotnet的朋友,提供了一些思路,不过最终还是使 ...
- Windows下获取本机IP地址方法介绍
Windows下获取本机IP地址方法介绍 if((hostinfo = gethostbyname(name)) != NULL) { #if 1 ; printf("IP COUNT: % ...
- java获取本机IP地址
转载自:http://blog.csdn.net/thunder09/article/details/5360251 在网上找了几个用java获取本机IP地址的代码,发现都少都有些不完美,自己整理了一 ...
- C# 获取本机IP地址以及转换字符串
/// <summary> /// IP地址转化 /// </summary> /// <param name="ipaddr">整型的IP地址 ...
- QT5下获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址
获取主机名称 /* * 名称:get_localmachine_name * 功能:获取本机机器名称 * 参数:no * 返回:QString */ QString CafesClient::get_ ...
- 详谈再论JAVA获取本机IP地址
首先,你如果搜索“JAVA获取本机IP地址”,基本上搜到的资料全是无用的.比如这篇:http://www.cnblogs.com/zrui-xyu/p/5039551.html实际上的代码在复杂环境下 ...
- Linux下获取本机IP地址的代码
Linux下获取本机IP地址的代码,返回值即为互联网标准点分格式的字符串. #define ETH_NAME "eth0" //获得本机IP地址 char* GetLocalAdd ...
- shell中获取本机ip地址
shell中获取本机ip地址 方法一: /sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr ...
随机推荐
- spark,hadoop集群安装注意
安装步骤严格参看厦门大学数据实验室教程 Spark 2.0分布式集群环境搭建(Python版) 安装Hadoop并搭建好Hadoop集群环境 遇到的问题 1.ubuntu 安装后升级.python是3 ...
- 再做一遍floyed
#include<bits/stdc++.h> #define R register int using namespace std; const int inf=0x3f3f3f3f; ...
- 初识kubernetes
Kubernetes最初源于谷歌内部的Borg,提供了面向应用的容器集群部署和管理系统.Kubernetes 的目标旨在消除编排物理/虚拟计算,网络和存储基础设施的负担,并使应用程序运营商和开发人员完 ...
- SQL学习笔记(一)
逻辑删除 所谓的逻辑删除其实并不是真正的删除,而是在表中将对应的是否删除标识或者字段做修改操作.在逻辑上数据是被删除的,但数据本身依然存在库中 例如 update students3 set isde ...
- 10分钟彻底理解Redis持久化和主从复制
在这篇文章,我们一起了解 Redis 使用中非常重要的两个机制:Reids 持久化和主从复制. 什么是 Redis 持久化? Redis 作为一个键值对内存数据库(NoSQL),数据都存储在内存当中, ...
- IntelliJ IDEA悬停鼠标显示方法详细信息
1.如果View -> Toolbar勾选情况下, 直接点击按钮打开设置, 或是直接点击File -> Settings(或是快捷键)打开设置窗口. 2.搜索栏中输入Show quick ...
- PEP 476 -- Enabling certificate verification by default for stdlib http clients
SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate ch ...
- centos下如何开放某个端口?
命令如下: firewall-cmd --permanent --add-port=/tcp (开放22端口) firewall-cmd --reload
- Leetcode: Longest Common Subsequence
Given two strings text1 and text2, return the length of their longest common subsequence. A subseque ...
- [原][landcover]全球地表植被样例图片
图由南水之源提供,感谢 流socket 制作总结 原截图如下:按字母顺序排序 asphalt asphalt_bright asphalt_white brightRockOnly broad ...