Определение города и страны по IP

InviS

Новичок
Определение города и страны по IP

Ребят, столкнулся с проблемой... Нужно определить город и страну по ip... Перерыл уже кучу API, остановился на MaxMind... У меня уже все готово было... все работало на домашнем PC на Денвере.. Начал переносить файлы на хостинг - бинарный файл с базой данных удаляется ;( т.к. он весит 27метров... Ограничения у них в условиях я не нашел... Использовал emaxihost.com (неплохой и без рекламы)

Кто что может посоветовать? Кроме использования платного хостинга! Проект нужен для себя, поэтому смысла платить за него я не вижу! Жду советов!
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Переносить по кускам, выставить опции, чтобы хостинг жрал большие файлы. Все на твой вкус.
 

InviS

Новичок
что за опции такие про большие файлы? файл один... имеет расширение .dat и весит 27 метров... когда переношу после закачки он тупо удаляется... я думал это сервер так настроен
 

fixxxer

К.О.
Партнер клуба
1) Написать хостеру с просьбой. Они наверняка такое удаляют, чтобы у них не устраивали файлопомойку, и вряд ли будут против geoip-базы, особенно, если ее класть вне DocRoot-а
2) Если есть mysql-база, и там нет серьезных ограничений на объем таблицы, можно переконвертировать базу в SQL;
3) Поискать ремотное API, позволяющее делать то же самое отправкой http-запросов соответствующему сервису, а не держать все у себя.
 

InviS

Новичок
уже нашел решение - пункт 3 :) Хостеру еще вчера написал, но они до сих пор не откликнулись :)
 

mity

Новичок
В принципе можно предложить 2 решения проблемы

1) Разбить файл на 27 частей, закачать их по отдельности на сервер и написать обедающий скрипт, примерно так
PHP:
 $out=fopen("GeoIP.dat","w+b");
  for($n=0;$n<30;$n++){
    if($f=fopen("GeoIP_$n.dat","rb")){
      $buf=fread($f1,10*1024*1024);
      fclose($f);
      fwrite($fout,$buf);
   };
 };
 fclose($fout);
Хотя и здесь хостер может удалить такой файл большой, правда и не сразу.

2) Разобраться в бинарном формате GeoIP.dat, перепаковать его по файлам скажем до мегабайта, и подкорректировать класс GeoIP чтобы он работал не с одним здоровенным файлам, а с кучей мелких

Внешний запрос конечно хорошо, у него база, скорее всего, всегда в актуальном состоянии. Но во первых это будет замедлять работу скрипта. А во вторых этот внешний сервис может вас временно забанить, если будите к нему часто обращаться.
 

InviS

Новичок
Это только для России. В принципе я уже решил проблему. Всем спасибо!
 
Сверху