Спустя 2 часа, 3 минуты, 43 секунды (19.07.2009 - 09:35) Nikitian написал(а):
Качаете например отсюда базы и определяете по ним локально. Можно узнать даже город и примерные координаты этого города.
Спустя 24 минуты, 6 секунд (19.07.2009 - 09:59) pavluxa09 написал(а):
А как с этой базой работать то?
Спустя 3 часа, 38 минут, 49 секунд (19.07.2009 - 13:37) Nikitian написал(а):
Сперва данный csv необходимо забить в базу, а потом делаете запрос вида
SQL |
select c.latitude, c.longitude from tbl_map_networks as n left join tbl_map_cities as c on (c.id=n.id) where n.from_ip<=INET_ATON($ip) and n.to_ip>=INET_ATON($ip) and n.len>0 order by n.len limit 1 |
где $ip - IP клиента, а n.len - разница межды from_ip и to_ip, которую вычисляете при загрузке базы.
Скрипт обновления сетей:
Скрипт обновления сетей:
PHP |
<pre><?php |
Скрипт обновления базы городов
PHP |
<pre><?php |
Там используются где-то мои функции, но переписать их думаю не составит труда.
Вот таблички:
SQL |
CREATE TABLE `tbl_map_cities` ( `id` int(11) unsigned NOT NULL, `name` varchar(55) collate utf8_unicode_ci NOT NULL, `nameen` varchar(55) collate utf8_unicode_ci NOT NULL, `region` varchar(55) collate utf8_unicode_ci NOT NULL, `regionen` varchar(55) collate utf8_unicode_ci NOT NULL, `latitude` float NOT NULL, `longitude` float NOT NULL, `countryid` int(11) unsigned NOT NULL, `countrycode` char(2) collate utf8_unicode_ci NOT NULL, `country` varchar(55) collate utf8_unicode_ci NOT NULL, `countryen` varchar(55) collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`), KEY `name` (`name`,`nameen`,`latitude`,`longitude`,`countryid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci CREATE TABLE `map_networks` ( `id` int(11) unsigned NOT NULL, `from_ip` bigint(20) unsigned NOT NULL, `to_ip` bigint(20) unsigned NOT NULL, `len` bigint(20) unsigned NOT NULL, `country_code` char(2) collate utf8_unicode_ci NOT NULL, `description` varchar(255) collate utf8_unicode_ci NOT NULL, UNIQUE KEY `from_ip` (`from_ip`,`to_ip`,`len`), KEY `id` (`id`), KEY `country_code` (`country_code`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |
Спустя 9 месяцев, 1 день, 21 час, 28 минут, 26 секунд (21.04.2010 - 11:06) Никита написал(а):
Я так полагаю
download - это какаято функция? потому что он не хочет качать файл
file_put_contents($file,download('http://www.ip2city.ru/index.php?action=get_all_cities'));
download - это какаято функция? потому что он не хочет качать файл
Спустя 1 час, 44 минуты, 41 секунда (21.04.2010 - 12:51) antonov_sa написал(а):
http://ipgeo-base.ru/
простой апи, есть написанные функции для работы, очень удобно, и не нужно будет ковыряться с гигантской базой, которую нужно постоянно обновлять
простой апи, есть написанные функции для работы, очень удобно, и не нужно будет ковыряться с гигантской базой, которую нужно постоянно обновлять
Спустя 1 час, 55 минут, 56 секунд (21.04.2010 - 14:47) Никита написал(а):
на сколько я понял там уклон на русские ИПы, а иностранные не все