Php удаленный IP-адрес
Всем Привет,
Я пытаюсь проверить удаленный IP-адрес, и если удаленный ip-адрес не совпадает с моим собственным ip-адресом, то эхо или предупреждение на экране говорят, что у вас нет доступа к этому файлу.
и если я включу этот файл в свои собственные страницы, он должен позволить. ниже приведен мой скрипт, который действительно отображает мой ip и удаленный ip-адрес, до этого момента он работает нормально.
это мой конфигурационный файл или файл функций, который я включаю("functions.php") внутри моей целевой страницы index.php-вот тут-то я и хочу ... index.php уметь читать - что не работает.
Любое предложение высоко ценится, я знаю, что могу использовать сеанс, я думаю. но изо всех сил стараюсь его установить.
Что я уже пробовал:
<?php // I usually like to add a line to some of my include-files, to keep them from being accessed directly: if ($_SERVER[‘REMOTE_ADDR’] != $_SERVER[‘SERVER_ADDR’]) die("Nope! You can not have it."); //== Attempt to obtain the visitor's actual IP-Address (as best as possible). function get_real_IP($void=null) { $headers = array( 'HTTP_VIA', 'HTTP_X_FORWARDED_FOR', 'HTTP_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_FORWARDED', 'HTTP_CLIENT_IP', 'HTTP_HTTP_CLIENT_IP', 'HTTP_FORWARDED_FOR_IP', 'VIA', 'X_FORWARDED_FOR', 'FORWARDED_FOR', 'X_FORWARDED', 'FORWARDED', 'CLIENT_IP', 'FORWARDED_FOR_IP', 'HTTP_XPROXY_CONNECTION', 'HTTP_PROXY_CONNECTION', 'HTTP_X_REAL_IP', 'HTTP_X_PROXY_ID', 'HTTP_USERAGENT_VIA', 'HTTP_HTTP_PC_REMOTE_ADDR', 'HTTP_X_CLUSTER_CLIENT_IP' ); foreach ($headers as $header) if (isset($_SERVER[$header]) && !empty($_SERVER[$header])) return $_SERVER[$header]; if (trim($_SERVER['SERVER_ADDR'])==trim($_SERVER['REMOTE_ADDR'])) return $_SERVER['SERVER_ADDR']; return $_SERVER['REMOTE_ADDR']; } if ($_SERVER['REMOTE_ADDR'] != $_SERVER['SERVER_ADDR']) die("Nope! You can not have it.".$_SERVER['SERVER_ADDR'] ." Remote address ".$_SERVER['REMOTE_ADDR'] ); ?>
Richard MacCutchan
О каком файле вы говорите? Существуют более простые методы защиты информации на сервере.
Member 14093672
Спасибо Ричард,
Просто пытаюсь защитить вложенные папки и файлы внутри от внешнего мира, но должен быть доступен для приложения, т. е. библиотека конфигураций изображений и т. д.
Не могли бы вы посоветовать, какие еще более простые методы защиты информации на сервере, пожалуйста?
Я также пытаюсь использовать защиту virtualhost, пожалуйста, смотрите мой другой вопрос https://www.codeproject.com/Questions/5128251/Apache-setup-virtual-host.
Я был бы признателен, если бы вы поделились своими мыслями.
Еще раз спасибо за чтение моих постов.
Richard MacCutchan
Файлы сервера не видны внешнему миру через браузеры, если вы не сделаете их таковыми. Я думаю, что вы пытаетесь решить проблему, которой не существует.
Member 14093672
проблема существует, если кто-то пример типа www.xyz.com/lib или www.xyz.com/images/logo.png, он виден внешнему миру. я хочу, чтобы это было видно только приложению, а не внешнему миру. надеюсь, все ясно.
Member 14093672
пример
Директорский матч "c:/xampp/htdocs/xyz/(.+)/">
Заказать отказать,разрешить
пример., я получил xyz/images/logo.png
по умолчанию пользователи не могут просматривать каталог., однако в моем браузере, если я наберу www.xyz/images/logo.png
, файл логотипа появится в браузере. я хочу, чтобы это было ограничено для внешнего мира, но видно для приложения.
Richard MacCutchan
Зачем вообще делать их видимыми для браузера?
Member 14093672
потому что эти файлы в подпапках являются важными/бизнес-скриптами, и они должны быть доступны только приложению, а не внешнему миру.надеюсь я ясно выразился пожалуйста
phil.o
Это то, что вы предпочли бы сделать на сетевом уровне: не направляйте входящие запросы по внешнему IP на порты 80 и 443 на ваш веб-сервер, и никто извне даже не сможет добраться до корня вашего сайта.