Есть сайт, на нем есть скрипт, к этому скрипту обращаются другие (сторонние) сайты при помощи file_get_contents (берется контент результата выполнения этого скрипта). Вопрос, как можно узнать адреса сайтов обращающие за этим скриптом? $_SERVER я посмотрел, но там ни чего дельного нет.
Успешный возврат значения функцией file_get_contents с параметром filename указывающим на протокол (прим. http://) означает, что сервер после проверки разрешительных директив php произведёт запрос методом HTTP GET (в случае указания параметра filename ~ http:// site.com/test.php). Соответственно, адресант запроса может быть отслежен точно также, как и адресант любого другого GET-запроса на ваш сервер. Однако, важно учитывать, что ряд заголовков, которые вы, вероятно, ожидаете увидеть в массиве $_SERVER могут не быть переданы в результате вызова этой функции на одном хосте и прийти от другого. Последнее зависит от конфигурации php на хосте-адресанте. Чтобы понять какие заголовки и параметры запроса приходят от адресанта, а какие нет, можно просто посмотреть эти запросы на адресате. Помимо стандартных заголовков, в запрос могут быть включены и дополнительные параметры, к примеру user_agent (в случае настройки соответствующей директивы). Также, передав корректный последний параметр в функцию file_get_contents(), сформированный функцией stream_context_create(), можно использовать и свой поток, что доступно описано в мануале.