php вывести ip сервера
Как определить IP-адрес сервера в PHP
Как я могу определить IP-адрес сервера в PHP?
15 ответов:
Если вы используете PHP версии 5.3 или выше, вы можете сделать следующее:
Это хорошо работает, когда вы запускаете автономный скрипт, а не через веб-сервер.
когда вы на IIS, попробуйте:
кроме того, потому что gethostbyname откатывается на общедоступные DNS-записи тестирования сервер с неопубликованными или неверными публичными DNS-записями (например, вы обращаетесь к серверу по localhost или IP-адрес, или если вы переопределяете общедоступный DNS с помощью локального hosts file), то вы получите обратно либо нет IP-адрес (он будет просто возвращать имя хоста) или еще хуже он будет возвращать неправильный адрес, указанный в публичных записях DNS, если он существует или если есть подстановочный знак для домена.
в зависимости от ситуации, вы также можете попробовать третий подход делаю что-то вроде этого:
это имеет свои недостатки (зависит от конкретного стороннего сайта, и могут быть сетевые настройки, которые маршрутизируют исходящие соединения через другой хост или прокси-сервер) и как gethostbyname это может быть медленно. Я честно не уверен, какой подход будет правильным чаще всего, но урок, который нужно принять близко к сердцу, заключается в том, что конкретные сценарии/конфигурации приведут к неправильным выводам для всех этих подходов. поэтому, если возможно, проверьте, что подход вы использование возвращает значения, которые вы ожидаете.
Я пришел на эту страницу, ища способ получить свой собственный ip-адрес, а не один из удаленной машины, подключенной ко мне.
Это не будет работать для машины windows.
но в случае, если кто-то ищет то, что я искала:
Как определить IP-адрес сервера в PHP
Как я могу определить IP-адрес сервера в PHP?
15 ответов
вот так для ip сервера:
Если вы используете PHP версии 5.3 или выше, вы можете сделать следующее:
Это хорошо работает, когда вы используете автономный скрипт, а не через веб-сервер.
когда вы на IIS, попробуйте:
кроме того, потому что gethostbyname падает обратно на общедоступные записи DNS тестирование сервер с неопубликованными или неверными публичными записями DNS (например, вы обращаетесь к серверу по localhost или IP-адрес, или если вы переопределяете общедоступный DNS, используя локальный hosts file), то вы получите либо нет IP-адреса (он просто вернет имя хоста), либо, что еще хуже, он вернет неправильный адрес, указанный в общедоступных записях DNS, если он существует или если есть подстановочный знак для домена.
в зависимости от ситуации, вы также можете попробовать третий подход делаю что-то вроде этого:—10—>
это имеет свои недостатки (зависит от конкретного стороннего сайта, и могут быть сетевые настройки, которые маршрутизируют исходящие соединения через другой хост или прокси-сервер) и как gethostbyname это может быть медленно. Я честно не уверен, какой подход будет правильным чаще всего, но урок, который нужно принять к сердцу, заключается в том, что конкретные сценарии/конфигурации приведут к неправильным результатам для всех этих подходов. поэтому, если возможно, убедитесь, что подход вы используя возвращает значения, которые вы ожидаете.
Я пришел на эту страницу, ища способ получить свой собственный ip-адрес, а не один из удаленных компьютеров, подключающихся ко мне.
Как в PHP узнать IP пользователя и определить его страну?
В этой статье рассмотрим, как в PHP можно узнать IP клиента и сервера, а также разберём как зная IP клиента определить его страну и город.
Как в PHP получить IP адрес посетителя сайта
Определение страны по ip с помощью Sypex Geo
Основные шаги по созданию php скрипта, с помощью которого можно будет определять страну по ip:
1. Скачаем Sypex Geo для PHP и базу данных стран. Sypex Geo распространяется по лицензии BSD, т.е. является абсолютно бесплатным.
2. Распакуем архивы и загрузим на сервер файлы «SxGeo.php» и «SxGeo.dat». В качестве примера, создадим на сервере папку SxGeo и загрузим эти файлы в неё.
3. Создадим свой скрипт, например, «get_country_code.php».
4. Вставим в этот файл следующий код:
5. Включим файл «get_country_code.php» в другие скрипты, в которых нужно реализовать выполнение кода в зависимости от принадлежности ip посетителя к той или иной стране.
Определение города по ip с помощью Sypex Geo
Для определения города, потребуется загрузить архив с базой данных городов для Sypex Geo, распаковать его и загрузить на сервер.
Скрипт в этом случае будет следующий:
Для автоматического обновления баз можно воспользоваться этим архивом. В этом архиве находится php скрипт. Этот скрипт необходимо настроить, т.е. указать в нём URL для скачивания базы и пути к файлам на сервере. После этого загрузить его на сервер и настроить его запуск по расписанию с помощью cron.
Определение страны и города по ip через сервис через сервис ipstack
Рассмотрим ещё один вариант определения в php местоположения по ip посетителя, но уже не через Sypex Geo, а с помощью сервиса ipstack.
Сервис ipstack имеет бесплатный план, который позволяет обрабатывать до 10000 запросов в месяц.
Для получения бесплатного плана нажимаем на кнопку «GET FREE API KEY» и переходим на страницу, на которой нужно заполнить регистрационную карточку.
После регистрации, на личной странице ipstack вам будет назначен «API Access Key», который нужно скопировать. Он нам потребуется при создании php скрипта.
Как в PHP получить IP адрес сервера
Узнать IP адрес сервера в PHP можно с помощью следующей инструкции:
Пример реализации определения локации в CMS MODX
В качестве примере рассмотрим, как в CMS MODX Revolution можно очень просто без сторонних сервисов осуществить определение страны посетителя. Разработаем решение на базе Sypex Geo.
1. Для этого сначала нужно загрузить Sypex Geo в проект:
Файл «SxGeo.php» – это основной скрипт, а «SxGeo.dat» – это база стран. Этих двух файлов достаточно для определения страны пользователя по его ip. Дополнительно в каталоге SxGeo ещё расположен файл «SxGeoCity.dat», данный файл в текущей реализации не нужен, он может потребовать, если в проекте потребуется определять не только страну пользователя, а ещё его регион и город.
2. Создадим сниппет, например «get_location.php». В качестве примера организуем это с помощью файлов. Для этого нужно чтобы был установлен pdoTools и в настройках включена опция «Использовать Fenom на страницах».
Код сниппета «get_location.php»:
Всё теперь чтобы написать логику достаточно использовать эту переменную.
Как узнать все внешние ip сервера из PHP?
Выдает локальный адрес маски и все внешние адреса.
Но! Есть одно но, он не показывает внешние адреса если сервер находится за роутером. Проверил на сервере который находится за роутером и он тоже имеет 3 адреса с которых может выходить в сеть например по курлу но эта команда показывает только локальный адрес в случае с таким сервером.
Как бы получить адреса в этом случае? Знаю что возможно видел несколько примеров например панели управления хостингом которые это делают но вот как?
Дальше не заморачивайтесь. Никто не настраивает исходящую маршрутизацию на несколько адресов, очень мало людей использует dual-wan.
У меня цель позволить приложению использовать все доступные адреса.
Нужно без использования внешних сервисов.
А вообще как curl ifconfig.me поможет мне в определении всех внешних ip моего VPS?
YAshchenKO: почитайте, как работает маршрутизация в linux.
Ваше приложение не может использовать адреса для исходящих коннектов. Оно может только слушать их.
Переменные окружения в PHP или как узнать всё о посетителе сайта и сервере
Какие данные можно получить о посетителе сайта при помощи php (браузер, ip, url и другое) или сервере (имя, почта и другое)?
Как расшифровываются переменные окружения в PHP (SERVER, REDIRECT и др) и что они передают?
DOCUMENT_ROOT Путь к корневой папке сайта. Для локального веб-сервера значение может принимать вид z:/home/htmlbook.ru/www, а в других случаях зависит от операционной системы сервера и используемого программного обеспечения.
GATEWAY_INTERFACE Версия CGI (Common Gateway Interface, общий шлюзовый интерфейс). Значение обычно равно CGI/1.1.
HTTP_ACCEPT Типы файлов, которые способен принять браузер. В качестве значения возвращается список поддерживаемых MIME-типов разделенных между собой запятой, например: text/html, application/xhtml+xml.
HTTP_CONNECTION Тип соединения браузера с веб-сервером. Так, значение keep-alive означает, что браузер поддерживает постоянное соединение с сервером. При этом в течение одного сеанса соединения разрешено делать несколько запросов. Повторного соединения в таком случае уже не происходит.
HTTP_HOST Доменное имя сайта. Обычно различают имена с префиксом www (www.tradebenefit.ru) и без него (tradebenefit.ru). Переменная вернёт тот адрес сайта, который указан в адресной строке браузера.
HTTP_REFERER Адрес страницы, с которой пользователь перешел на данный сайт, он еще называется реферер.
HTTP_USER_AGENT
Идентификатор используемого браузера и операционной системы. В качестве значения возвращается строка, содержащая ключевые слова. Например, следующая строка
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2
говорит, что пользователь использует браузер Firefox 6.0.2 под операционной системой Windows 7.
QUERY_STRING Запрос, который указан в адресной строке после вопросительного знака (?). Обычно пишется в форме «переменная=значение», где переменные разделяются между собой амперсантом. Рассмотрим пример.
REMOTE_ADDR IP-адрес посетителя сайта.
REQUEST_METHOD Метод отправки данных на сервер. По умолчанию применяется метод GET.
REQUEST_URI Адрес запрашиваемого документа. Отсчёт ведётся от корня сайта, т.е. для полного адреса http://tradebemnefit.ru/1.html вернется значение 1.html.
SERVER_ADDR IP-адрес компьютера, на котором размещается сайт.
SERVER_ADMIN Адрес электронной почты администратора сайта.
SERVER_NAME Имя сервера.
SERVER_PORT Порт, по которому ожидается получение данных.
SERVER_PROTOCOL Протокол для получения и отправки данных. Значение обычно равно HTTP/1.1.
SERVER_SOFTWARE Программное обеспечение установленное на сервере. Для веб-сервера Apache возвращается номер версии (Apache/2.2.4), а также версия PHP (PHP/5.3.3).
Пример вывода переменной окружения в php
Вывод одной переменной делается так:
А для вывода всех данных создаём цикл: