/
Вопросы и ответы
/
JavaScript
/

как получить ip адрес клиента через javascript без использования сервера

как получить ip адрес клиента через javascript без использования сервера

год назад

Nikolai Gagarinov

Ответы

0

Одним из способов получить IP адрес клиента через JavaScript является использование стороннего сервиса для определения этого IP. Например, можно отправить запрос к сайту, который вернет IP адрес клиента. Например, можно воспользоваться сервисом https://api.ipify.org/.

Пример кода:

fetch('https://api.ipify.org?format=json')
  .then(response => response.json())
  .then(data => {
    const clientIp = data.ip;
    console.log(clientIp);
  })
  .catch(error => {
    console.error('Error:', error);
  });

Еще один способ - использование WebRTC (Web Real-Time Communication) API. Этот метод также позволяет получить IP адрес клиента, но тоже не является абсолютно надежным. Пример кода для использования WebRTC API:

const pc = new RTCPeerConnection();
pc.createDataChannel('');
pc.createOffer()
  .then(offer => pc.setLocalDescription(offer))
  .then(() => new Promise(resolve => {
    if (pc.iceGatheringState === 'complete') {
      resolve();
    } else {
      function checkState() {
        if (pc.iceGatheringState === 'complete') {
          pc.removeEventListener('icegatheringstatechange', checkState);
          resolve();
        }
      }
      pc.addEventListener('icegatheringstatechange', checkState);
    }
  }))
  .then(() => {
    const regex = /candidate:.+ (\S+) \d+ typ/;
    const { sdp } = pc.localDescription;
    const ip = regex.exec(sdp)[1];
    console.log(ip);
  });

Использование сторонних сервисов или API для получения IP адреса клиента может нарушить приватность пользователей, поэтому рекомендуется использовать подобные методы осторожно и с учетом правил обработки личных данных.

5 месяцев назад

Maksim Litvinov