Добрый день, я создал PHP API, который принимает запросы GET / POST.
Я хотел бы получить IP-адрес сервера, который сделал запрос в мой API для того, чтобы я сделал некоторую проверку.
Я пытался использовать $_SERVER['REMOTE_ADDR']
значение для этого, но заметил, что он не работает хорошо со всеми видами веб-сайтов.
Я пытался найти решение в Интернете, но только нашел, как получить IP-адрес клиента.
И я думаю, что «клиент» означает пользователя, который вызвал вызов API.
Мне нужен адрес сервера сайта, с которого был сделан запрос.
Может ли кто-нибудь предложить лучший способ сделать это?
API можно вызывать с сервера — например, из другого PHP-скрипта — или со стороны клиента — обычно это Javascript в браузере с использованием AJAX, что гораздо более распространено. Например, фрагмент Javscript для Google Analytics, Google Maps и т. Д. Будет включен во множество веб-страниц, но фактический вызов Google будет сделан браузером клиента. В тех ситуациях, которые я считаю типичными для многих (большинства?) API-интерфейсов, единственный IP-адрес, который вы увидите, — это клиент, а не веб-сервер. Решение, которое использует Google (и многие другие API), состоит в том, чтобы требовать регистрации для бесплатного ключа API, чтобы использовать API. Обычно вы не можете отследить это до определенного веб-сервера, но это позволяет вам связаться с первоначальным клиентом или разработчиком, который зарегистрировался для API.
TL; DR Создайте бесплатный «Ключ API» для пользователей / клиентов / разработчиков вашего веб-сайта и отслеживайте их таким образом.
Других решений пока нет …