Как с помощью JS определить ip пользователя?

118
02 декабря 2020, 07:50

Хочу сделать так что бы JS определял Ip пользователя при запуске скрипта, но не знаю как это сделать. Подскажете?

Answer 1

Только на сервере можно попробовать определить публичный ip пользователя, однако можно послать запрос на сторонний сервис для этого

fetch('https://ipapi.co/json/') 
  .then(d => d.json()) 
  .then(d => document.querySelector('#ip').innerHTML = d.ip);
<div id="ip"></div>

Answer 2

function findIP(onNewIP) { 
  var myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; 
  var pc = new myPeerConnection({ 
      iceServers: [] 
    }), 
    noop = function() {}, 
    localIPs = {}, 
    ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g, 
    key; 
 
  function ipIterate(ip) { 
    if (!localIPs[ip]) onNewIP(ip); 
    localIPs[ip] = true; 
  } 
  pc.createDataChannel(""); 
  pc.createOffer(function(sdp) { 
    sdp.sdp.split('\n').forEach(function(line) { 
      if (line.indexOf('candidate') < 0) return; 
      line.match(ipRegex).forEach(ipIterate); 
    }); 
    pc.setLocalDescription(sdp, noop, noop); 
  }, noop); 
  pc.onicecandidate = function(ice) { 
    if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return; 
    ice.candidate.candidate.match(ipRegex).forEach(ipIterate); 
  }; 
} 
 
 
 
var ul = document.createElement('ul'); 
ul.textContent = 'Ваш IP: ' 
document.body.appendChild(ul); 
 
function addIP(ip) { 
  console.log('Ваш IP: ', ip); 
  var li = document.createElement('li'); 
  li.textContent = ip; 
  ul.appendChild(li); 
} 
 
findIP(addIP);

READ ALSO
Импортировать картинку в поле image из canvas, Яндекс шаринг

Импортировать картинку в поле image из canvas, Яндекс шаринг

Столкнулась с проблемой, что изображение, получаемое из canvas, не добавляется в поле imageКод следующий (VueJS v

125
Не работает селектор this

Не работает селектор this

Мне нужно взять значение из заголовка и вставить его в значение атрибута

96
Проверка input на наличие цифр

Проверка input на наличие цифр

По задумке этот код должен выводить "hi", если строка состоит из цифр, но он выводит "hi" и в таких ситуациях 45645gh4, когда первый символ строки цифраМне...

111