Как да получите IP адреса на клиента с помощта на JavaScript?

Трябва по някакъв начин да извлека IP адреса на клиента с помощта на JavaScript; без код от страна на сървъра, дори без SSI.

Въпреки това не съм против използването на безплатен скрипт/услуга от трета страна.

Повечето от отговорите тук "заобикалят" необходимостта от код от страна на сървъра чрез... Използване на чужд сървър. Което е напълно валидна техника, освен ако не ви е необходимо да получите IP адреса, без да се налага да влизате в сървър.

Традиционно това не беше възможно без някакъв вид приставка (и дори тогава вероятно щяхте да получите неправилния IP адрес, ако сте зад NAT рутер), но с появата на WebRTC това е възможно... *Ако се насочите към браузъри, които поддържат WebRTC (понастоящем: Firefox, Chrome и Opera).

Моля, прочетете отговора на mido's за подробности относно начина, по който можете да извлечете полезни клиентски IP адреси, използвайки WebRTC.

Коментари (6)

По принцип това е невъзможно, освен ако не използвате някаква външна услуга.

Коментари (1)

Всъщност няма надежден начин да се получи IP адресът на клиентския компютър.

Тук са разгледани някои от възможностите. Кодът, който използва Java, ще се счупи, ако потребителят има няколко интерфейса.

http://nanoagent.blogspot.com/2006/09/how-to-find-evaluate-remoteaddrclients.html

От прегледа на другите отговори тук изглежда, че може да искате да получите публичния IP адрес на клиента, който вероятно е адресът на рутера, който той използва, за да се свърже с интернет. Много от другите отговори тук говорят за това. Бих препоръчал да създадете и хоствате собствена страница на сървъра за получаване на заявката и отговор с IP адреса, вместо да зависите от чужда услуга, която може да продължи да работи, а може и да не работи.

Коментари (0)