2015-10-12 7 views
-1

Я использую Maxmind для определения IP-адреса и отображения кода страны, названия страны и имени города в php. У меня нет никаких проблем, чтобы показать выше информации через GeoIP.dat, geoip.inc, geoipcity.inc и т.д.Geoip IP Detect с использованием базы данных php и mysql

я вставил GeoIPCountryWhois.csv в моей базе данных SQL,

$mysqli->query('DROP TABLE ip2country'); $sql=" CREATE TABLE ip2country (ip_string_lo VARCHAR(16) NOT NULL, ip_string_hi VARCHAR(16) NOT NULL, ip_number_lo INT UNSIGNED NOT NULL, ip_number_hi INT UNSIGNED NOT NULL, country_code VARCHAR(2) NOT NULL, country_name VARCHAR(64) NOT NULL)"; 

могли бы вы, пожалуйста, расскажите, как показать информацию о IP-адресе, используя мою базу данных? Thanks

ответ

0

База данных Maxmind - это сбалансированное двоичное дерево. Это очень быстро. Однако поместить его в MySQL иногда делает это еще быстрее. Вам нужно будет получить версию CSV fom Maxmind, и самый простой способ - создать такую ​​же структуру, как и CSV.

Затем вам нужно преобразовать IP-адрес в номер - для этого функции PHP и MySQL имеют функцию.

Наконец, вы выполняете простой SQL и выбираете строку. Maxmind CSV имеет блоки IP-адресов и дает вам первый и последний IP-адреса как int. Ваш IP должен быть «внутри» блока, например. MySQL 'между'.

Я лично ссылаюсь на создание GeoIP в Redis, потому что тогда он еще быстрее.

 Смежные вопросы

  • Нет связанных вопросов^_^