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

Comments

Popular posts from this blog

psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

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

SELECT COUNTRY WITH STATE AND IT'S CITIES RAILS

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

SEARCHING USING AJAX IN RAILS

UPLOAD ANY MEDIA FILE IN RAILS USING PAPERCLIP

CURL COMMAND ON RUBY ON RAILS

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

CHECK PASSENGER RUBY PATH