Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.02.2017, 13:38
Интересующийся
Отправить личное сообщение для Vital1981 Посмотреть профиль Найти все сообщения от Vital1981
 
Регистрация: 18.02.2017
Сообщений: 16

Помочь с 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
Ответить с цитированием
  #2 (permalink)  
Старый 18.02.2017, 14:01
Интересующийся
Отправить личное сообщение для Vital1981 Посмотреть профиль Найти все сообщения от Vital1981
 
Регистрация: 18.02.2017
Сообщений: 16

Если есть сложности - то я бы их выслушал.
Ответить с цитированием
  #3 (permalink)  
Старый 18.02.2017, 14:23
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Vital1981
клались в var переменную, которую потом передать в php.
А что непосредственно РНР нельзя узнать IP? К тому же, если у пользователя включены такие штуки как AdBlock, то ничего вы не получите от клиента.
Ответить с цитированием
  #4 (permalink)  
Старый 18.02.2017, 14:30
Интересующийся
Отправить личное сообщение для Vital1981 Посмотреть профиль Найти все сообщения от Vital1981
 
Регистрация: 18.02.2017
Сообщений: 16

Задача понять -есть ли утечка IP через webrtc
Ответить с цитированием
  #5 (permalink)  
Старый 18.02.2017, 15:43
Интересующийся
Отправить личное сообщение для Vital1981 Посмотреть профиль Найти все сообщения от Vital1981
 
Регистрация: 18.02.2017
Сообщений: 16

вот сам код какой надо немного переделать
<!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>
Ответить с цитированием
  #6 (permalink)  
Старый 18.02.2017, 19:01
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Можно перед строкой 098 добавить ajax отправку на сервер - ip, это он и есть.
Ответить с цитированием
  #7 (permalink)  
Старый 18.02.2017, 19:10
Интересующийся
Отправить личное сообщение для Vital1981 Посмотреть профиль Найти все сообщения от Vital1981
 
Регистрация: 18.02.2017
Сообщений: 16

Сообщение от laimas Посмотреть сообщение
Можно перед строкой 098 добавить ajax отправку на сервер - ip, это он и есть.
А в Php есть вариант положить?
Ответить с цитированием
  #8 (permalink)  
Старый 18.02.2017, 20:30
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Vital1981
А в Php есть вариант положить?
Как понимать "вариант"? Там нет вариантов, получили сохранили в указанном месте. Или о чем вопрос?
Ответить с цитированием
  #9 (permalink)  
Старый 18.02.2017, 21:01
Интересующийся
Отправить личное сообщение для Vital1981 Посмотреть профиль Найти все сообщения от Vital1981
 
Регистрация: 18.02.2017
Сообщений: 16

Сообщение от laimas Посмотреть сообщение
Как понимать "вариант"? Там нет вариантов, получили сохранили в указанном месте. Или о чем вопрос?
Как например положить локальный IP в PHP переменную для дальнейшей работы с ней? Тут (в виду моего не знания) даже js редирект не сделаешь.
Ответить с цитированием
  #10 (permalink)  
Старый 18.02.2017, 21:09
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
BackEnd/FrontEnd Developer (Native JS) Abab Работа 0 25.12.2016 10:56
js стиль render для react.js vflash Ваши сайты и скрипты 5 01.04.2016 22:57
JS <-> Server Js. Severtain Общие вопросы Javascript 1 05.11.2011 15:36
JS Coaching для стартапа OlgaAyva Работа 12 27.09.2011 22:18
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28