`
haoningabc
  • 浏览: 1482845 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

webrtc学习笔记四(获取真实的ip)

阅读更多
<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收集 .docx

    ### WebRTC学习笔记_Demo收集 #### 一、WebRTC现状与历史背景 WebRTC(Web Real-Time Communication)是一项开放的、免费的技术框架,旨在使Web浏览器能够在无需插件的情况下进行实时音视频通信。该技术最初由...

    Webrtc学习笔记-V1

    这项技术源自谷歌对GlobalIP Solutions公司的收购,它包含了一系列的组件,旨在构建一个跨浏览器的实时通信平台,促进开发者与浏览器厂商之间的合作。 WebRTC的主要功能包括: 1. **视频采集**:它提供了在不同...

    webrtc学习笔记一 (视频流)

    这篇“webrtc学习笔记一”主要关注的是视频流处理,是WebRTC技术中的核心部分。在深入讨论之前,先了解一下WebRTC的基本架构和组成部分。 1. **基础概念**: - **Peer Connection**: 是WebRTC的核心组件,负责...

    WebRTC学习笔记01-最简单实现一对一视频通讯代码

    在"WebRTC学习笔记01-最简单实现一对一视频通讯代码"中,我们将探讨WebRTC的基础知识以及如何通过简单的代码实现一对一视频通话。 首先,WebRTC的核心组件包括: 1. **RTCPeerConnection**:这是WebRTC中最关键的...

    WebRTC学习之四:最简单的语音聊天

    使用WebRTC实现了最简单的语言聊天 详见博客:http://blog.csdn.net/caoshangpa/article/details/53889057

    WebRTC学习之三:录音和播放

    在本项目“WebRTC学习之三:录音和播放”中,我们将探讨如何利用C++来实现WebRTC的功能,特别是录音和播放操作,并结合Qt库创建用户界面。 1. WebRTC基础: WebRTC提供了包括音频、视频和数据共享在内的实时通信...

    webrtc_Linux源代码获取以及编译

    Webrtc Linux 源代码获取与编译 Webrtc 是一个开源的实时通信项目,提供了一个基于Web 的实时通信平台。为了在 Linux 平台上使用 Webrtc,我们需要获取其源代码并编译它。本文将详细介绍如何获取 Webrtc 的源代码、...

    Webrtc源码开发笔记1 —Webrtc视频编码打包流程模块图解.zip

    Webrtc源码开发笔记1 —Webrtc视频编码打包流程模块图解 梳理webrtc从transceiver到transport流程,从而宏观上了解webrtc视频采集,编码,打包发送等相关流程与相关模块的对应关系,为开发和快速定位问题提供参考。

    JS获取客户端IP地址及MAC地址(转)

    在JavaScript中,获取客户端IP地址和MAC地址是一个相对复杂的过程,因为JavaScript的浏览器安全限制不允许直接访问客户端的MAC地址。然而,我们可以通过一些间接的方法来获取客户端的IP地址。在这个场景下,`...

    webrtc.rar_webRTC AEC实例_webrtc_webrtc arm_webrtc resample_webrtc

    webRTC的AEC实例,可直接运行,便于初学者学习了解webRTC。

    webRTC的直播播放器

    1. **getUserMedia**:这是WebRTC API的一部分,用于获取用户的音频和视频输入。它允许播放器请求访问用户的摄像头和麦克风,为直播播放提供源数据。 2. **RTCPeerConnection**:这是WebRTC的核心组件,负责建立和...

    WebRTC 学习资源

    WebRTC 学习资源

    webrtc_android源代码获取以及编译

    Webrtc_android源代码获取以及编译 Webrtc_android源代码获取以及编译是指在Android平台上获取和编译Webrtc源代码的过程。为此,我们需要首先建立编译环境,下载源代码,然后编译和运行。 一、系统要求 为编译...

    Learning WebRTC中文版-用WebRTC开发交互实时通信应用

    通过阅读本书,读者可以快速、有效地掌握创建一个WebRTC 应用所必需的知识,包括获取用户设备信息、创建WebRTC 应用的客户端和服务器、连接用户并发送数据、文件共享、数据信息安全和性能优化。 《Learning WebRTC ...

    webrtc基于webrtc-streamer推流实现直播

    2. **获取MediaStream**:通过调用浏览器的`navigator.mediaDevices.getUserMedia()`方法,获取用户的摄像头和麦克风权限,得到MediaStream对象。 3. **建立WebRTC连接**:使用`RTCPeerConnection`接口创建两端之间...

    webRtc的示例代码

    学习并使用"SimpleWebRTC-master"这个示例,开发者可以更好地理解WebRTC的工作原理,从而快速地开发出自己的音视频应用。通过阅读和调试代码,你可以了解如何整合上述各个组件,实现端对端的通信功能,尤其在内网...

    中文版WebRTC教程

    WebRTC包括三个主要组件:getUserMedia用于获取本地媒体流,RTCPeerConnection负责建立和维护两个浏览器之间的通信信道,以及RTCDataChannel用于传输任意数据。这些组件共同构建了实时通信的基础框架。 WebRTC的...

    android获取摄像头预览--基于webrtc android

    基于webrtc-android,获取预览数据并且进行显示的一个demo,基于博客文章: https://blog.csdn.net/zhangkai19890929/article/details/82344751

    Webrtc 视频demo(Android)

    WebRTC(Web Real-Time Communication)是一项开放的网络技术,它允许网页浏览器进行实时通信(RTC),无需插件或额外的软件。在Android平台上,开发者可以利用WebRTC库创建丰富的音视频应用,包括视频会议、直播、...

Global site tag (gtag.js) - Google Analytics