GET THE SYSTEM BROWSER PRIVATE IP WHEN CLICK ON ANY LINK USING JAVASCRIPT

WHEN WE CLICK ON ANY LINK THEN HAVE TO GET THE MACHINE IP , WHICH CLICK IS CLIKED FROM WHICH IP ADDRESS OR WHICH MACHINE. (I mean, if i click on facebook with my system then we want to get my ip , at what time i have click on facebook from which machine or IP ).  FOR GETTING THE PARTICULAR MACHINE IP , WE CAN USE THIS FOR THAT . WE CAN EASILY FIND THE IP ADDRESS.

<a href="https://www.flipkart.com" target="_blank" onclick="myMethod()">Flipkart</a>

<script type="text/javascript">
    //get the IP addresses associated with an account
    function getIPs(callback){
        var ip_dups = {};

        //compatibility for firefox and chrome
        var RTCPeerConnection = window.RTCPeerConnection
          || window.mozRTCPeerConnection
          || window.webkitRTCPeerConnection;
        var useWebKit = !!window.webkitRTCPeerConnection;

        //bypass naive webrtc blocking using an iframe
        if(!RTCPeerConnection){
            //NOTE: you need to have an iframe in the page right above the script tag
            //
            //<iframe id="iframe" sandbox="allow-same-origin" style="display: none"></iframe>
            //<script>...getIPs called in here...
            //
            var win = iframe.contentWindow;
            RTCPeerConnection = win.RTCPeerConnection
              || win.mozRTCPeerConnection
              || win.webkitRTCPeerConnection;
            useWebKit = !!win.webkitRTCPeerConnection;
        }

        //minimal requirements for data connection
        var mediaConstraints = {
          optional: [{RtpDataChannels: true}]
        };

        var servers = {iceServers: [{urls: "stun:stun.services.mozilla.com"}]};

        //construct a new RTCPeerConnection
        var pc = new RTCPeerConnection(servers, mediaConstraints);

        function handleCandidate(candidate){
          //match just the IP address
          var ip_regex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/
          var ip_addr = ip_regex.exec(candidate)[1];

          //remove duplicates
          if(ip_dups[ip_addr] === undefined)
              callback(ip_addr);

          ip_dups[ip_addr] = true;
        }

        //listen for candidate events
        pc.onicecandidate = function(ice){
          //skip non-candidate events
          if(ice.candidate)
            handleCandidate(ice.candidate.candidate);
        };

        //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(){});
        }, function(){});

        //wait for a while to let everything done
        setTimeout(function(){
            //read candidate info from local description
            var lines = pc.localDescription.sdp.split('\n');

            lines.forEach(function(line){
              if(line.indexOf('a=candidate:') === 0)
                handleCandidate(line);
            });
        }, 1000);
    }


    function myMethod(){
        getIPs(function(ip){
            $.ajax({
                url: "/",
                method: "get",
                data: {ip_address: ip}
            });

        });
    }


</script>

WE CAN FOLLOW LINK BELOW :- 

https://github.com/diafygi/webrtc-ips
Post a Comment

Popular posts from this blog

CARRIERWAVE - UPLOAD ANY MEDIA (AUDIO , VIDEO AND IMAGE ) FILE IN RAILS

RAILS: UPLOADING PHOTOS VIA AMAZON S3 AND PAPERCLIP (UPLOADING FILES TO S3 IN RUBY WITH PAPERCLIP)

SELECT COUNTRY WITH STATE AND IT'S CITIES RAILS

UNINITIALIZED CONSTANT PAPERCLIP::STORAGE::S3::AWS

Building native extensions. This could take a while... ERROR: Error installing mysql: ERROR: Failed to build gem native extension.

HOW TO CALL RAILS API FROM SIMPLE HTML PAGE.

CREATE API FOR USER SIGN UP, LOGIN AND CREATE PUBLISHER WITH CURRENT USER