Я хочу получить страну посетителей через их IP ... Прямо сейчас я использую это ( http://api.hostip.info/country.php?ip= ......)
Вот мой код:
<?php
if (isset($_SERVER['HTTP_CLIENT_IP']))
{
$real_ip_adress = $_SERVER['HTTP_CLIENT_IP'];
}
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$real_ip_adress = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$real_ip_adress = $_SERVER['REMOTE_ADDR'];
}
$cip = $real_ip_adress;
$iptolocation = 'http://api.hostip.info/country.php?ip=' . $cip;
$creatorlocation = file_get_contents($iptolocation);
?>
Ну, он работает правильно, но дело в том, что он возвращает код страны, такой как США или CA., а не все название страны, как США или Канада.
Итак, есть ли хорошая альтернатива hostip.info предлагает это?
Я знаю, что могу написать какой-то код, который в конечном итоге превратит эти две буквы в целое название страны, но мне просто лень писать код, содержащий все страны ...
PS: по какой-то причине я не хочу использовать какой-либо готовый файл CSV или какой-либо код, который будет собирать эту информацию для меня, что-то вроде готового кода ip2country и CSV.
php
geolocation
ip
country-codes
Алекс С.
источник
источник
$real_ip_address
всегда игнорируется. В любом случае, помните, чтоX-Forwarded-For
заголовок HTTP может быть чрезвычайно легко подделан, и что существуют прокси-серверы, такие как www.hidemyass.comhttps://www.iplocate.io/api/lookup/8.8.8.8
- Отказ от ответственности: я запускаю этот сервис.Ответы:
Попробуйте эту простую функцию PHP.
Как пользоваться:
Пример 1: Получить информацию об IP-адресе посетителя
Пример 2: Получить детали любого IP-адреса. [Поддержка IPV4 и IPV6]
источник
file_get_contents()
. Просто проверьте ваш файл error_log. Обходной путь: см. Мой ответ.Вы можете использовать простой API с http://www.geoplugin.net/
Используемая функция
Вывод
У вас так много вариантов, с которыми вы можете поиграть
Спасибо
:)
источник
Я попытался ответить Чандре, но моя конфигурация сервера не позволяет file_get_contents ()
PHP Warning: file_get_contents() URL file-access is disabled in the server configuration
Я изменил код Чандры, чтобы он также работал на таких серверах, как cURL:
Надеюсь, это поможет ;-)
источник
На самом деле, вы можете позвонить http://api.hostip.info/?ip=123.125.114.144, чтобы получить информацию, которая представлена в XML.
источник
Используйте MaxMind GeoIP (или GeoIPLite, если вы не готовы платить).
источник
Используйте следующие сервисы
1) http://api.hostip.info/get_html.php?ip=12.215.42.19
2)
3) http://ipinfodb.com/ip_location_api.php
источник
Проверьте php-ip-2-country из code.google. База данных, которую они предоставляют, обновляется ежедневно, поэтому нет необходимости подключаться к внешнему серверу для проверки, если вы размещаете свой собственный сервер SQL. Таким образом, используя код, вам нужно всего лишь набрать:
Пример кода (из ресурса)
Вывод
источник
Мы можем использовать geobytes.com, чтобы получить местоположение, используя IP-адрес пользователя
он вернет данные как это
Функция для получения IP-адреса пользователя
источник
Попробуйте этот простой однострочный код. Вы получите страну и город посетителей с их удаленного IP-адреса.
источник
Вы можете использовать веб-сервис http://ip-api.com
в своем php-коде, сделав следующее:
запрос имеет много другой информации:
источник
Существует хорошо поддерживаемая версия базы данных ip-> country с открытым файлом, поддерживаемая сообществом Perl по адресу CPAN.
Для доступа к этим файлам не требуется сервер данных, а сами данные - примерно 515 тыс.
Хигемару написал PHP-оболочку для общения с этими данными: php-ip-country-fast
источник
Много разных способов сделать это ...
Решение № 1:
Одна сторонняя служба, которую вы можете использовать, - http://ipinfodb.com . Они предоставляют имя хоста, геолокацию и дополнительную информацию.
Зарегистрируйтесь для получения ключа API здесь: http://ipinfodb.com/register.php . Это позволит вам получать результаты со своего сервера, без этого он не будет работать.
Скопируйте и вставьте следующий код PHP:
Даунсайд:
Цитирование с их сайта:
Решение № 2:
Эта функция возвращает название страны, используя сервис http://www.netip.de/ .
Вывод:
источник
Мой сервис ipdata.co предоставляет название страны на 5 языках! А также организация, валюта, часовой пояс, код вызова, флаг, данные оператора мобильной связи, данные прокси-сервера и данные статуса узла выхода Tor с любого адреса IPv4 или IPv6.
Он также чрезвычайно масштабируем с 10 регионами по всему миру, каждый из которых способен обрабатывать> 10 000 запросов в секунду!
Варианты включают в себя; Английский (en), немецкий (de), японский (ja), французский (fr) и упрощенный китайский (za-CH)
источник
Не уверен, что это новый сервис, но сейчас (2016) самый простой способ в php - использовать php веб-сервис геоплагина: http://www.geoplugin.net/php.gp :
Основное использование:
Они также предоставляют готовый класс: http://www.geoplugin.com/_media/webservices/geoplugin.class.php.tgz?id=webservices%3Aphp&cache=cache
источник
else
после,else
который вызывает ошибку. Что вы пытались предотвратить? REMOTE_ADDR должен быть доступен постоянно?$_SERVER
: «Нет никакой гарантии, что каждый веб-сервер предоставит какой-либо из них; серверы могут пропустить некоторые или предоставить другие, не перечисленные здесь».Я использую
ipinfodb.com
API и получаю именно то, что вы ищете.Это абсолютно бесплатно, вам просто нужно зарегистрироваться, чтобы получить ключ API. Вы можете включить их класс php, загрузив их с их сайта, или вы можете использовать формат url для получения информации.
Вот что я делаю:
Я включил их класс php в свой скрипт и использовал следующий код:
Это оно.
источник
Вы можете использовать http://ipinfo.io/, чтобы получить подробную информацию об IP-адресе. Его легко использовать.
источник
Замените
127.0.0.1
посетителями IpAddress.Инструкции по установке находятся здесь , и прочитайте это, чтобы узнать, как получить город, штат, страну, долготу, широту и т. Д.
источник
Один вкладыш с IP-адресом для страны API
Пример :
https://ipapi.co/country_name/ - ваша страна
https://ipapi.co/8.8.8.8/country_name/ - страна для IP 8.8.8.8
источник
У меня есть короткий ответ, который я использовал в проекте. В своем ответе я считаю, что у вас есть IP-адрес посетителя.
источник
Я знаю, что это старое, но я попробовал несколько других решений здесь, и они кажутся устаревшими или просто возвращают ноль. Так вот как я это сделал.
Использование
http://www.geoplugin.net/json.gp?ip=
которого не требует какого-либо типа регистрации или оплаты за услугу.И если вы хотите получить дополнительную информацию об этом, это полный возврат Json:
источник
Я написал класс, основанный на ответе «Чандра Накка». Надеемся, что это может помочь людям сохранить информацию из геоданных в сеанс, поэтому загрузка при вызове информации происходит намного быстрее. Он также сохраняет значения в закрытом массиве, поэтому вызов в том же коде происходит быстрее всего.
Отвечая на вопрос «op» с этим классом, вы можете позвонить
И другие доступные свойства:
возврате
источник
Пользователь Страна API имеет именно то , что вам нужно. Вот пример кода с использованием file_get_contents (), как вы это делаете изначально:
источник
Вы можете получить посетителей страны и города, используя ipstack geo API. Вам нужно получить свой собственный API ipstack, а затем использовать код ниже:
Источник: Получить страну и город посетителей в PHP с помощью ipstack API
источник
Это всего лишь примечание по безопасности о том,
get_client_ip()
что большинство ответов здесь были включены в основную функциюget_geo_info_for_this_ip()
.Не полагайтесь слишком сильно на IP-данные в заголовках запросов, например
Client-IP
илиX-Forwarded-For
потому, что они могут быть очень легко подделаны, однако вы должны полагаться на исходный IP-адрес TCP-соединения, которое фактически установлено между нашим сервером и клиентом,$_SERVER['REMOTE_ADDR']
насколько это возможно ». не быть обманутымМожно получить страну поддельного IP-адреса, но имейте в виду, что использование этого IP-адреса в любой модели безопасности (например, запрет IP-адреса, отправляющего частые запросы) разрушит всю модель безопасности. ИМХО Я предпочитаю использовать фактический IP-адрес клиента, даже если это IP-адрес прокси-сервера.
источник
Пытаться
источник
Вы можете использовать мой сервис: https://SmartIP.io , который предоставляет полные названия стран и городов любого IP-адреса. Мы также предоставляем часовые пояса, обнаружение валюты, прокси, обнаружение узлов TOR и обнаружение криптографии.
Вам просто нужно зарегистрироваться и получить бесплатный ключ API, который позволяет обрабатывать 250 000 запросов в месяц.
Используя официальную библиотеку PHP, вызов API становится:
Обратитесь к документации API для получения дополнительной информации: https://smartip.io/docs
источник
С 2019 года базу данных MaxMind для стран можно использовать следующим образом:
Источник: https://github.com/maxmind/MaxMind-DB-Reader-php
источник
Это было бы приемлемо? чистый PHP
ссылка: https://www.php.net/manual/en/function.geoip-country-code-by-name.php
источник