Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: срочно нужна база айпишнегов
Форумы портала PHP.SU » PHP » Программирование на PHP » срочно нужна база айпишнегов

Страниц (1): [1]
 

1. Вездеход - 01 Сентября, 2009 - 22:23:56 - перейти к сообщению
для проекта нужнен скрипт (и база для него) для определения из какого города пользователь, на основе его айпишнега.
или хотябы объясните откуда брать такие данные...
2. EuGen - 01 Сентября, 2009 - 23:11:06 - перейти к сообщению
Смотрите в сторону GeoIP
Ну и whois-центры (например, http://whois.domaintools.com)
3. Вездеход - 01 Сентября, 2009 - 23:15:54 - перейти к сообщению
про geoip почитаю, пасибо

про хуис центры - слышал что если часто ими пользоваться якобы могут заблочить... не правда?
4. EuGen - 02 Сентября, 2009 - 02:18:29 - перейти к сообщению
Помнится, у указанного мной было - обращение чаще 5 раз за секунду = бан на сутки; повторение случая = бан навечно
5. Viper - 02 Сентября, 2009 - 07:57:10 - перейти к сообщению
Вездеход http://www[dot]maxmind[dot]com/app/ip-location
раздел Free

там же есть готовые примеры для перла и php

Объясню ещё как я делал.
в папку складываем файлы
GeoIP.dat
geoip.inc
GeoIPCity.dat
geoipcity.inc
GeoIPOrg.dat
geoipregionvars.php

NB! Названия файлов могут несколько отличатся, т.к. у меня коммерческие версии баз.

Далее скрипт
PHP:
скопировать код в буфер обмена
  1. include('geoip/geoip.inc');
  2. include('geoip/geoipcity.inc');
  3. include('geoip/geoipregionvars.php');
  4. if (file_exists('geoip/GeoIP.dat')) {
  5.         $gi = geoip_open('geoip/GeoIP.dat', GEOIP_STANDARD);
  6.         if (file_exists('geoip/GeoIPCity.dat')) {
  7.                 // For commercial version only
  8.                 $gi_city = geoip_open('geoip/GeoIPCity.dat', GEOIP_STANDARD);
  9.                         $city = 1;
  10.                 } elseif (file_exists('geoip/GeoLiteCity.dat')) {
  11.                         $gi_city = geoip_open('geoip/GeoLiteCity.dat', GEOIP_STANDARD);
  12.                         $city = 1;
  13.                 }
  14.         $do = 1;
  15.         if (file_exists('geoip/GeoIPOrg.dat')) {
  16.                 // For commercial version only
  17.                 $gi_org = geoip_open('geoip/GeoIPOrg.dat', GEOIP_STANDARD);
  18.                 $org = 1;
  19.         }
  20. }
  21.  
  22. if ($city == 1) {
  23.         $array_city = geoip_record_by_addr($gi_city, $row->ip);
  24. }
  25.  
  26. if ($org == 1) {
  27.         $array_org = geoip_org_by_addr($gi_org, $row->ip);
  28. }
  29.  
  30. if ($do == 1) {
  31.         echo '<img src="icons/countries/'.strtolower(geoip_country_code_by_addr($gi, $row->ip)).'.png" style="vertical-align: middle;">';
  32.         echo 'Страна: '.geoip_country_name_by_addr($gi, $row->ip).'('.geoip_country_code_by_addr($gi, $row->ip).')';
  33.         if ($city == 1) {
  34.                 echo '<br />Регион: '.$GEOIP_REGION_NAME[$array_city->country_code][$array_city->region].'('.$array_city->region.')';
  35.         }
  36.         if ($org == 1) {
  37.                 echo '<br />'.'Организация: '.$array_org;
  38.         }
  39. }
6. Вездеход - 02 Сентября, 2009 - 20:05:09 - перейти к сообщению
Viper
там я тоже побывал ... ))
как все сложно, я думал проще будет....
но все равно спасибо. тем более за пример... буду копаться дальше =)

 

Powered by ExBB FM 1.0 RC1