сетевое программирование — Как получить локальный / внутренний IP с помощью JavaScript

Как получить локальный / внутренний IP с помощью JavaScript

откуда я взял код -{amp}gt; Source

Вы можете найти демо в -{amp}gt; Демо

Я изменил исходный код, сократил количество строк, не делая никаких оглушающих запросов, так как вам нужен только локальный IP, а не публичный IP, приведенный ниже код работает в последних версиях Firefox и Chrome:

  window.RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; //compatibility for firefox and chrome var pc = new RTCPeerConnection({iceServers:[]}), noop = function(){}; pc.createDataChannel(""); //create a bogus data channel pc.createOffer(pc.setLocalDescription.bind(pc), noop); // create offer and set local description pc.onicecandidate = function(ice){ //listen for candidate events if(!ice || !ice.candidate || !ice.candidate.candidate) return; var myIP = /([0-9]{1,3}(.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/.exec(ice.candidate.candidate)[1]; console.log('my IP: ', myIP); pc.onicecandidate = noop; }; 

то, что здесь происходит, мы создаем фиктивное одноранговое соединение, и для того, чтобы удаленный одноранговый узел связался с нами, мы обычно обмениваемся ледовыми кандидатами друг с другом. А читая ледяные леденцы, мы можем сказать ip пользователя.

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector