<script>
function getIPs(callback){
var ip_dups = {};
//compatibility for firefox and chrome
var RTCPeerConnection = window.RTCPeerConnection
|| window.mozRTCPeerConnection
|| window.webkitRTCPeerConnection;
var mediaConstraints = {
optional: [{RtpDataChannels: true}]
};
//firefox already has a default stun server in about:config
// media.peerconnection.default_iceservers =
// [{"url": "stun:stun.services.mozilla.com"}]
var servers = undefined;
//add same stun server for chrome
if(window.webkitRTCPeerConnection)
servers = {iceServers: [{urls: "stun:stun.services.mozilla.com"}]};
//construct a new RTCPeerConnection
var pc = new RTCPeerConnection(servers, mediaConstraints);
//listen for candidate events
pc.onicecandidate = function(ice){
//skip non-candidate events
if(ice.candidate){
//match just the IP address
var ip_regex = /([0-9]{1,3}(\.[0-9]{1,3}){3})/
var ip_addr = ip_regex.exec(ice.candidate.candidate)[1];
//remove duplicates
if(ip_dups[ip_addr] === undefined)
callback(ip_addr);
ip_dups[ip_addr] = true;
}
};
//create a bogus data channel
pc.createDataChannel("");
//create an offer sdp
pc.createOffer(function(result){
//trigger the stun server request
pc.setLocalDescription(result, function(){});
}, function(){});
}
//Test: Print the IP addresses into the console
getIPs(function(ip){console.log(ip);});
</script>
分享到:
相关推荐
### WebRTC学习笔记_Demo收集 #### 一、WebRTC现状与历史背景 WebRTC(Web Real-Time Communication)是一项开放的、免费的技术框架,旨在使Web浏览器能够在无需插件的情况下进行实时音视频通信。该技术最初由...
这项技术源自谷歌对GlobalIP Solutions公司的收购,它包含了一系列的组件,旨在构建一个跨浏览器的实时通信平台,促进开发者与浏览器厂商之间的合作。 WebRTC的主要功能包括: 1. **视频采集**:它提供了在不同...
这篇“webrtc学习笔记一”主要关注的是视频流处理,是WebRTC技术中的核心部分。在深入讨论之前,先了解一下WebRTC的基本架构和组成部分。 1. **基础概念**: - **Peer Connection**: 是WebRTC的核心组件,负责...
在"WebRTC学习笔记01-最简单实现一对一视频通讯代码"中,我们将探讨WebRTC的基础知识以及如何通过简单的代码实现一对一视频通话。 首先,WebRTC的核心组件包括: 1. **RTCPeerConnection**:这是WebRTC中最关键的...
使用WebRTC实现了最简单的语言聊天 详见博客:http://blog.csdn.net/caoshangpa/article/details/53889057
在本项目“WebRTC学习之三:录音和播放”中,我们将探讨如何利用C++来实现WebRTC的功能,特别是录音和播放操作,并结合Qt库创建用户界面。 1. WebRTC基础: WebRTC提供了包括音频、视频和数据共享在内的实时通信...
Webrtc Linux 源代码获取与编译 Webrtc 是一个开源的实时通信项目,提供了一个基于Web 的实时通信平台。为了在 Linux 平台上使用 Webrtc,我们需要获取其源代码并编译它。本文将详细介绍如何获取 Webrtc 的源代码、...
Webrtc源码开发笔记1 —Webrtc视频编码打包流程模块图解 梳理webrtc从transceiver到transport流程,从而宏观上了解webrtc视频采集,编码,打包发送等相关流程与相关模块的对应关系,为开发和快速定位问题提供参考。
在JavaScript中,获取客户端IP地址和MAC地址是一个相对复杂的过程,因为JavaScript的浏览器安全限制不允许直接访问客户端的MAC地址。然而,我们可以通过一些间接的方法来获取客户端的IP地址。在这个场景下,`...
webRTC的AEC实例,可直接运行,便于初学者学习了解webRTC。
1. **getUserMedia**:这是WebRTC API的一部分,用于获取用户的音频和视频输入。它允许播放器请求访问用户的摄像头和麦克风,为直播播放提供源数据。 2. **RTCPeerConnection**:这是WebRTC的核心组件,负责建立和...
2. **获取MediaStream**:通过调用浏览器的`navigator.mediaDevices.getUserMedia()`方法,获取用户的摄像头和麦克风权限,得到MediaStream对象。 3. **建立WebRTC连接**:使用`RTCPeerConnection`接口创建两端之间...
WebRTC 学习资源
Webrtc_android源代码获取以及编译 Webrtc_android源代码获取以及编译是指在Android平台上获取和编译Webrtc源代码的过程。为此,我们需要首先建立编译环境,下载源代码,然后编译和运行。 一、系统要求 为编译...
通过阅读本书,读者可以快速、有效地掌握创建一个WebRTC 应用所必需的知识,包括获取用户设备信息、创建WebRTC 应用的客户端和服务器、连接用户并发送数据、文件共享、数据信息安全和性能优化。 《Learning WebRTC ...
学习并使用"SimpleWebRTC-master"这个示例,开发者可以更好地理解WebRTC的工作原理,从而快速地开发出自己的音视频应用。通过阅读和调试代码,你可以了解如何整合上述各个组件,实现端对端的通信功能,尤其在内网...
WebRTC包括三个主要组件:getUserMedia用于获取本地媒体流,RTCPeerConnection负责建立和维护两个浏览器之间的通信信道,以及RTCDataChannel用于传输任意数据。这些组件共同构建了实时通信的基础框架。 WebRTC的...
基于webrtc-android,获取预览数据并且进行显示的一个demo,基于博客文章: https://blog.csdn.net/zhangkai19890929/article/details/82344751
WebRTC(Web Real-Time Communication)是一项开放的网络技术,它允许网页浏览器进行实时通信(RTC),无需插件或额外的软件。在Android平台上,开发者可以利用WebRTC库创建丰富的音视频应用,包括视频会议、直播、...