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

560
задан Samuel Liew 16 June 2018 в 01:51
поделиться

6 ответов

Не возможный в целом, если Вы не используете некоторый внешний сервис.

11
ответ дан Eugene Lazutkin 16 June 2018 в 01:51
поделиться

Я не гуру JavaScript, но если его возможное Вы могли бы открыть iframe с http://www.whatismyip.com/automation/n09230945.asp как источник и считать содержание кадра.

Редактирование: эта работа привычки из-за перекрестной безопасности домена.

2
ответ дан UnkwnTech 16 June 2018 в 01:51
поделиться

Ну, я отступаю от вопроса, но у меня была подобная потребность сегодня и хотя я не мог найти идентификатор от клиента, использующего JavaScript, я сделал следующее.

На стороне сервера: -

<div style="display:none;visibility:hidden" id="uip"><%= Request.UserHostAddress %></div>

Используя Javascript

var ip = $get("uip").innerHTML;

я использую Ajax ASP.NET, но можно использовать getElementById вместо $get ().

то, Что происходит, у меня есть скрытый элемент отделения на странице с IP пользователя, представленным с сервера. Чем в JavaScript я просто загружаю то значение.

Это могло бы быть полезно некоторым людям с подобным требованием как Ваше (как я, в то время как я не имел, понимают это).

За Ваше здоровье!

12
ответ дан Cyril Gupta 16 June 2018 в 01:51
поделиться

Большинство ответов здесь "работает вокруг" потребности в серверном коде... Удар чужого сервера. Который является полностью допустимой техникой, если Вам на самом деле не нужно для получения IP-адреса, не поражая сервер.

Традиционно это не было возможно без своего рода плагин (и даже тогда, Вы, вероятно, стали бы неправыми IP-адрес, если бы Вы были позади маршрутизатора NAT), но с появлением WebRTC на самом деле возможно сделать это... , Если Вы нацелены браузеры, которые поддерживают WebRTC (в настоящее время: Firefox, Chrome и Opera).

ответ mido's чтения для получения дополнительной информации о том, как можно получить полезное клиентское использование IP-адресов WebRTC.

101
ответ дан Community 16 June 2018 в 01:51
поделиться

Нет действительно надежного способа получить клиентский IP-адрес компьютера.

Это проходит некоторые возможности. Код, который использует Java, повредится, если у пользователя будет несколько интерфейсов.

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

От рассмотрения других ответов здесь это кажется, что можно хотеть получить общедоступный IP-адрес клиента, который является, вероятно, адресом маршрутизатора, который они используют для соединения с Интернетом. Много других ответов здесь говорит об этом. Я рекомендовал бы создать и разместить Вашу собственную серверную страницу для получения запроса и отвечания IP-адресом вместо в зависимости от чужого сервиса, который может или не может продолжить работать.

8
ответ дан Sarel Botha 16 June 2018 в 01:51
поделиться

Вы можете пересылать его через серверную часть с помощью JSONP [1268 И, пока поискать его, нашел его здесь, в SO Можно ли выполнить поиск DNS (имя хоста по IP-адресу) с помощью клиентского Javascript?

<script type="application/javascript">
    function getip(json){
      alert(json.ip); // alerts the ip address
    }
</script>

<script type="application/javascript" src="http://www.telize.com/jsonip?callback=getip"></script>

Примечание: API telize.com имеет постоянный закрыта с 15 ноября 2015 г. .

175
ответ дан 22 November 2019 в 22:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: