Получать IP клиента с javascript или jquery

Поскольку я могу получать IP реальный клиента так из-за Javascript если было возможно.

Это означает, что была прямая связь, или посредством одного proxy, или router или то, что пойдет, всегда я идентифицировался IP реальный вычислительного клиента.

Осуществите этот код в javascript. Но только функционируй в каких-то случаях, и дело в том, что он не имел proxy, из-за которого в личном он не подает меня, из-за которого он указывает на proxy и не в IP моей машины.

Код:

<!DOCTYPE html>
<html>
  <head>
    <title>IP real</title>
  </head>
  <body>
     Mi IP es: <strong id="ipId"></strong>

    <script type="text/javascript">
        function get_ip(obj){
            document.getElementById('ipId').innerHTML = obj.ip;
        }
    </script>
    <script type="text/javascript" src="https://api.ipify.org/?format=jsonp&callback=get_ip"></script>
  </body>
</html>
7
задан 04.05.2017, 16:13
3 ответа

То, что это делает Chrome и Mozilla, они снарядили API WebRTC, разработанный глобальной сетью, которая принимает выполнять запросы в серверы STUN этот протокол, позволяет клиентам NAT или пользователей получать IP - адреса pГєblicas и локальные. Эти результаты запроса estГЎn доступные для языка сценариев JavaScript, с этим сейчас его удается достичь IP - адресов pГєblicas и помещений пользователей в языке сценариев JavaScript. Этот demo - пример implementaciГіn этого. Я надеюсь, что он подает тебе

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
   
    <h4>Tu dirección de IP lOCAL:</h4>
    <ul></ul>
    <h4>Tu dirección de IP Publica:</h4>
    <ul></ul>
    <h4>Tu dirección IPv6:</h4>
    <ul></ul>
    <iframe id="iframe" sandbox="allow-same-origin" style="display: none"></iframe>
    <script>
        //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);
        }

        //insert IP addresses into the page
        getIPs(function(ip){
            var li = document.createElement("li");
            li.textContent = ip;

            //local IPs
            if (ip.match(/^(192\.168\.|169\.254\.|10\.|172\.(1[6-9]|2\d|3[01]))/))
                document.getElementsByTagName("ul")[0].appendChild(li);

            //IPv6 addresses
            else if (ip.match(/^[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7}$/))
                document.getElementsByTagName("ul")[2].appendChild(li);

            //assume the rest are public IPs
            else
                document.getElementsByTagName("ul")[1].appendChild(li);
        });
    </script>
</body>
</html>
1
ответ дан 24.11.2019, 09:29
  • 1
    Не является одиноким có я говорю, а объяснять это –  25.01.2019, 23:20
  • 2
    Añ á delo сейчас и не despué s, дай издавать ему и agré галл или podrí an голосовать за негатив –  25.01.2019, 23:23

Это лучший ответ, который я нашел в stackoverflow (InglГ©s) в Javascript как jQuery в безопасной среде https так используя бесплатную внешнюю API:

Получать IP клиента в JAVASCRIPT:

<script type="application/javascript">
  function getIP(json) {
    document.write("My public IP address is: ", json.ip);
  }
</script>

<script type="application/javascript" src="https://api.ipify.org?format=jsonp&callback=getIP"></script>

Получать IP клиента в jQUERY:

$.getJSON('https://api.ipify.org?format=json', function(data){
    console.log(data.ip);
});

я не протестировал Javascript, но в Jquery пойди совершенно. Протестируй, если ты coje хорошо твой IP только когда пишут это в твой браузер: https://api.ipify.org? format=jsonp& callback=getIP

ШРИФТ: https://ourcodeworld.com / articles / read / 257/how-to-get-the-client-ip-address-with-javascript-only

0
ответ дан 24.11.2019, 09:29

Напечатай переменную PHP

echo '<pre>';print_r($SERVER);exit;

и ahГ - ты можешь выбирать IP SERVER['HTTP_CLIENT_IP']

-1
ответ дан 24.11.2019, 09:29
  • 1
    Из-за qué? Всегда помни что докажи ответ –  25.01.2019, 23:24
  • 2
    это не ни javascript даже JQuery как querí в пользователя – Ruslan López 25.01.2019, 23:59

Теги

Похожие вопросы