Не плохая работа! но заметил что малая часть городов/сел были удалены, например:
Антил,Геба,Гиба,Карбук,Нита,Новокаякент,Новый Хушет,Сталское в “maxmind” есть а в объединённой базе нет. Такое наверно произошло и с другими мало известноми городами.
Может это произошло когда были отсеяны артефакты, я не знаю, но могу помочь правильно перевести название городов.
Сделать это можно так: с начало транслить все города в базе на русский язык, патом скриптом искать похожие совпадения с другой базы которая только с названиями городов(есть в формате txt), затем заменять совпадения.
$query = “select * from `net_city_ip` where begin_ip<= $i and $i <=end_ip;";
$result = mysql_query($query);
if ($row = mysql_fetch_assoc($result))
{
$locId = $row['id'];
}
$query = "select * from `net_city` where city_id='".$locId."'";
есть лучший вариант?
NetLoad
27 декабря 2010, 11:48
Скорее всего названия небольших городов потерялись на этапе перевода (Google не знает таких). На досуге попробую другую технику перевода, возможно, будет лучший результат.
Сравнивать со списком городов – отличная идея, да вот не нашёл я приличный список городов мира. Если у Вас есть такой – поделитесь.
По поводу запроса к базе данных. Конструкция с вложенным SELECT в моем запросе выглядит страшно, но она отрабатывает на два порядка быстрее, чем один запрос с двумя условиями. Невероятно, но факт.
Сергей
27 декабря 2010, 22:38
Ваш запрос с начало проверяет страну, патом город? можно взглянуть?
NetLoad
27 декабря 2010, 22:41
В архиве “Страны и города” есть пример запросов.
Виктор
14 января 2011, 1:26
А сколько в базе стран и сколько городов?
Можно ли использовать эту базу в качестве классификатора стран и городов (как MaxMind World Cities без координат, но на русском)?
NetLoad
15 января 2011, 13:49
В базе все страны (таблица net_country) и ~ 57 тысяч городов (таблица net_city). В русских названиях городов возможны ошибки.
Сергей
27 декабря 2010, 5:44
Не плохая работа! но заметил что малая часть городов/сел были удалены, например:
Антил,Геба,Гиба,Карбук,Нита,Новокаякент,Новый Хушет,Сталское в “maxmind” есть а в объединённой базе нет. Такое наверно произошло и с другими мало известноми городами.
Может это произошло когда были отсеяны артефакты, я не знаю, но могу помочь правильно перевести название городов.
Сделать это можно так: с начало транслить все города в базе на русский язык, патом скриптом искать похожие совпадения с другой базы которая только с названиями городов(есть в формате txt), затем заменять совпадения.
Сергей
27 декабря 2010, 5:53
и ещё….
function ipaddress_to_uint32($ip)
{
list($v4,$v3,$v2,$v1) = explode(“.”, $ip);
return ($v4*256 *256*256) + ($v3*256*256) + ($v2*256) + ($v1);
}
$i = ipaddress_to_uint32($ip);
$query = “select * from `net_city_ip` where begin_ip<= $i and $i <=end_ip;";
$result = mysql_query($query);
if ($row = mysql_fetch_assoc($result))
{
$locId = $row['id'];
}
$query = "select * from `net_city` where city_id='".$locId."'";
есть лучший вариант?
NetLoad
27 декабря 2010, 11:48
Скорее всего названия небольших городов потерялись на этапе перевода (Google не знает таких). На досуге попробую другую технику перевода, возможно, будет лучший результат.
Сравнивать со списком городов – отличная идея, да вот не нашёл я приличный список городов мира. Если у Вас есть такой – поделитесь.
По поводу запроса к базе данных. Конструкция с вложенным SELECT в моем запросе выглядит страшно, но она отрабатывает на два порядка быстрее, чем один запрос с двумя условиями. Невероятно, но факт.
Сергей
27 декабря 2010, 22:38
Ваш запрос с начало проверяет страну, патом город? можно взглянуть?
NetLoad
27 декабря 2010, 22:41
В архиве “Страны и города” есть пример запросов.
Виктор
14 января 2011, 1:26
А сколько в базе стран и сколько городов?
Можно ли использовать эту базу в качестве классификатора стран и городов (как MaxMind World Cities без координат, но на русском)?
NetLoad
15 января 2011, 13:49
В базе все страны (таблица net_country) и ~ 57 тысяч городов (таблица net_city). В русских названиях городов возможны ошибки.