Javascript-форум (https://javascript.ru/forum/)
-   Работа (https://javascript.ru/forum/job/)
-   -   Помочь с js переменными (за деньги) (https://javascript.ru/forum/job/67454-pomoch-s-js-peremennymi-za-dengi.html)

Vital1981 18.02.2017 13:38

Помочь с js переменными (за деньги)
 
Есть проект
https://diafygi.github.io/webrtc-ips/
Исходный код проекта
https://github.com/diafygi/webrtc-ips


Необходимо чтобы данные


Your local IP addresses:

Your public IP addresses:

Your IPv6 addresses:

клались в var переменную, которую потом передать в php.


https://www.fl.ru/projects/3140287/p...emennyimi.html

Vital1981 18.02.2017 14:01

Если есть сложности - то я бы их выслушал.

laimas 18.02.2017 14:23

Цитата:

Сообщение от Vital1981
клались в var переменную, которую потом передать в php.

А что непосредственно РНР нельзя узнать IP? К тому же, если у пользователя включены такие штуки как AdBlock, то ничего вы не получите от клиента.

Vital1981 18.02.2017 14:30

Задача понять -есть ли утечка IP через webrtc

Vital1981 18.02.2017 15:43

вот сам код какой надо немного переделать
 
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head>
    <body>
        <h4>
            Demo for:
            <a href="https://github.com/diafygi/webrtc-ips">
                https://github.com/diafygi/webrtc-ips
            </a>
        </h4>
        <p>
            This demo secretly makes requests to STUN servers that can log your
            request. These requests do not show up in developer consoles and
            cannot be blocked by browser plugins (AdBlock, Ghostery, etc.).
        </p>
        <h4>Your local IP addresses:</h4>
        <ul></ul>
        <h4>Your public IP addresses:</h4>
        <ul></ul>
        <h4>Your IPv6 addresses:</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>

laimas 18.02.2017 19:01

Можно перед строкой 098 добавить ajax отправку на сервер - ip, это он и есть.

Vital1981 18.02.2017 19:10

Цитата:

Сообщение от laimas (Сообщение 444670)
Можно перед строкой 098 добавить ajax отправку на сервер - ip, это он и есть.

А в Php есть вариант положить?

laimas 18.02.2017 20:30

Цитата:

Сообщение от Vital1981
А в Php есть вариант положить?

Как понимать "вариант"? Там нет вариантов, получили сохранили в указанном месте. Или о чем вопрос?

Vital1981 18.02.2017 21:01

Цитата:

Сообщение от laimas (Сообщение 444683)
Как понимать "вариант"? Там нет вариантов, получили сохранили в указанном месте. Или о чем вопрос?

Как например положить локальный IP в PHP переменную для дальнейшей работы с ней? Тут (в виду моего не знания) даже js редирект не сделаешь.

laimas 18.02.2017 21:09

Серверу клиент отдает данные методом GET или POST, поэтому их можно получит соответственно в $_SET или $_POST массивах. Если клиент отдает к примеру методом POST этот ip под этим же ключом, то $_POST['ip'] и будет равная значению ip. Какие еще переменные нужны, делайте с $_POST['ip'] что вам нужно.


Часовой пояс GMT +3, время: 04:59.