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

В Ruby нет конструкторов, поэтому, очевидно, их нельзя вызывать, родительские или иные. Однако в Ruby есть методы, и для вызова метода родителя с тем же именем, что и текущий выполняемый метод, вы можете использовать ключевое слово super. [Примечание: super без аргументов является ярлыком для передачи тех же аргументов, которые были переданы в текущий выполняемый метод. Если вы действительно хотите передать нет аргументов, вы должны сделать это явно: super().]

39
задан hippietrail 1 August 2012 в 11:26
поделиться

2 ответа

jQuery может обрабатывать JSONP, просто передайте URL-адрес, отформатированный с помощью callback =? параметр метода $. getJSON , например:

 $. getJSON ("https://api.ipify.org/?format=json", function (e) {console.log ( e.ip);}); 
  

Этот пример представляет собой действительно простую службу JSONP, реализованную на api.ipify.org .

Если вы не ищете междоменное решение, сценарий можно упростить еще больше, поскольку вы не используете параметр обратного вызова не требуется, и вы возвращаете чистый JSON.

56
ответ дан 27 November 2019 в 02:23
поделиться

Простой вызов AJAX на ваш сервер, а затем логика на стороне сервера для получения IP-адреса должна помочь.

$.getJSON('getip.php', function(data){
  alert('Your ip is: ' +  data.ip);
});

Затем в php вы можете сделать:

<?php
/* getip.php */
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');

if (!empty($_SERVER['HTTP_CLIENT_IP']))
{
  $ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
  $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
  $ip=$_SERVER['REMOTE_ADDR'];
}
print json_encode(array('ip' => $ip));
27
ответ дан 27 November 2019 в 02:23
поделиться
Другие вопросы по тегам:

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