zoukankan      html  css  js  c++  java
  • 获取电脑本机的IP地址

    <head>

    </head>
    <body>
      
    </body>

    <script>
       var RTCPeerConnection = /*window.RTCPeerConnection ||*/ window.webkitRTCPeerConnection || window.mozRTCPeerConnection;

    if (RTCPeerConnection) (function () {
        var rtc = new RTCPeerConnection({ iceServers: [] });
        if (1 || window.mozRTCPeerConnection) {      // FF [and now Chrome!] needs a channel/stream to proceed
            rtc.createDataChannel('', { reliable: false });
        };

        rtc.onicecandidate = function (evt) {
            // convert the candidate to SDP so we can run it through our general parser
            // see https://twitter.com/lancestout/status/525796175425720320 for details
            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); });


        var addrs = Object.create(null);
        addrs["0.0.0.0"] = false;
        function updateDisplay(newAddr) {
            if (newAddr in addrs) return;
            else addrs[newAddr] = true;
            var displayAddrs = Object.keys(addrs).filter(function (k) { return addrs[k]; });
            alert(displayAddrs.join(" or perhaps ") || "n/a");   //这里为本机的IP
        }

        function grepSDP(sdp) {
            var hosts = [];
            sdp.split('\r\n').forEach(function (line) { // c.f. http://tools.ietf.org/html/rfc4566#page-39
                if (~line.indexOf("a=candidate")) {     // http://tools.ietf.org/html/rfc4566#section-5.13
                    var parts = line.split(' '),        // http://tools.ietf.org/html/rfc5245#section-15.1
                        addr = parts[4],
                        type = parts[7];
                    if (type === 'host') updateDisplay(addr);
                } else if (~line.indexOf("c=")) {       // http://tools.ietf.org/html/rfc4566#section-5.7
                    var parts = line.split(' '),
                        addr = parts[2];
                    updateDisplay(addr);
                }
            });
        }
    })(); else {
        alert("<code>ifconfig | grep inet | grep -v inet6 | cut -d\" \" -f2 | tail -n1</code>");
        alert("In Chrome and Firefox your IP should display automatically, by the power of WebRTCskull.");
    }
         
    </script>
  • 相关阅读:
    剖析 GSM 加密机制以及位置更新的过程
    利用ASK/OOK 发射模块,实现信号重放
    使用RTL-SDR打开车门
    复现 360 Unicorn Team 黑科技之 HackNFC
    如何搭建并使用便携式 4G/LTE 伪基站研究移动安全
    如何利用 LTE/4G 伪基站+GSM 中间人攻击攻破所有短信验证
    黑客炼金术士 Seeker:可以攻破 4G 摸到你短信,还要为朝阳群众提供谍战工具
    如何使用HackRF做一个简单的IMSI捕获器
    招中高级web开发工程师
    ionic 动画和返回按钮
  • 原文地址:https://www.cnblogs.com/meiyanstar/p/12868785.html
Copyright © 2011-2022 走看看