Я не уверен, что ответы на данный момент являются точными, но это может быть я, который смущен. Я отвечаю, в частности, на ту часть вашего вопроса, которая гласит: «Недоступно через Интернет». Вот моя попытка ответа:
Веб-сервер, а не PHP, прослушивает сокет и принимает подключения. PHP может получить информацию о соединении от $ _SERVER (http://www.php.net/manual/en/reserved.variables.server.php).. Имейте в виду, что все, что вы проверяете, это то, откуда пришло соединение - вы ничего не можете узнать о том, доступен ли ваш сервер через другие IP-адреса от $ _SERVER. Например, я могу получить доступ к своему локальному экземпляру Apache / PHP через любой из:
Итак, если вы планируете, что приложение будет вести себя по-разному, увидев "правильное" значение в $ _SERVER ["SERVER_ADDR"], вы, вероятно, довольно безопасны - то есть маловероятно, что пользователь может подделать его с удаленного клиента.
Сказав все это, я не буду использовать ни один из этих методов ни для аутентификации пользователей, ни для авторизации пользовательских привилегий / действий в развернутом приложении, которое доступно через Интернет. Единственным исключением может быть, если у вас есть целое приложение, которое доступно только при доступе из localhost - тогда этот метод, вероятно, имеет смысл и будет достаточно безопасным для личного приложения.