Как получить IP-адрес пользователя REST

Я попытался бы объяснить на диаграммах

[REST SERVER] <--------> [JAVASCRIPT BASED WEBSITE] <--------> [USER] 192.168.0.2 192.168.0.3 192.168.0.123 

Как я могу получить IP-адрес веб-сайта, который использует сервер REST вместо IP-адреса USER.

Я попытался использовать $ _SERVER ['REMOTE_ADDR'] и $ _SERVER ['HTTP_REFERRER'], но оба они возвращают IP-адрес пользователя.

Возможно ли это в Интернете? Я использую PHP для моего сервера REST.

Я предполагаю, что вы имеете в виду, что веб-сайт размещен на 192.168.0.3 . Это означает, что пользователь будет загружать данные Javascript и HTML с указанного сервера, а затем выполнять его локально на 192.168.0.123 . Затем Javascript будет делать удаленные вызовы службе REST с этого локального IP-адреса.

Вы хотите знать, как получить IP-адрес сервера, на котором размещены файлы Javascript / HTML, до того, как клиент скачал их, предположительно, надежным способом. И ответ заключается в том, что это невозможно. Поскольку ваша фактическая схема выглядит так:

 [JAVASCRIPT BASED WEBSITE] <--------> [USER] 192.168.0.3 192.168.0.123 ^ | [REST SERVER] <--------------------------+ 192.168.0.2 

Вы не можете сделать это надежно. Вам нужно будет передать javascript этому серверу. А поскольку javascript запускается на стороне клиента, это может быть подделано.

И даже тогда javascript не имеет собственных функций, чтобы получить вам IP-адрес веб-сайта. Он может дать вам доменное имя. А затем, например, в PHP, вы можете разрешить это доменное имя на IP-адрес. Или веб-сервер, основанный на javascript, напрямую передает свой IP-адрес. Например, с помощью PHP вы можете сделать в javascript: var myIP = '<?php echo $_SERVER['SERVER_ADDR']; ?>'; var myIP = '<?php echo $_SERVER['SERVER_ADDR']; ?>';

В качестве побочного элемента заголовок Origin (может быть подделан) предназначен для этой цели, но безопасным обходным путем будет какое-то рукопожатие между сервером JS и сервером REST.

Веб-страница, основанная на Javascript, запрашивает код маркера через серверы, вы помещаете этот токен в javascript и отправляете его на сервер останова.

Остальной сервер проверяет код маркера, а затем вы точно знаете, где находится javascript.

Это единственный метод проверки происхождения, это невозможно с помощью простых IP-адресов.