Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение региона по IP 
:(
    Опции темы
KoLiZeI
Дата 10.1.2008, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 6.4.2007
Где: г. Саратов

Репутация: нет
Всего: нет



Как определить из какого региона человек, что бы при входе на сайт автоматически определялось откуда он, хотя бы с малой долей вероятности? 
PM MAIL WWW ICQ Skype   Вверх
MoLeX
Дата 10.1.2008, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



хм, скорей всего нужна БД этих IP, или запрашивать спец сервисы для пердоставлении  информации.


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
vasac
Дата 10.1.2008, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 8
Всего: 36



PM WWW   Вверх
KoLiZeI
Дата 10.1.2008, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 6.4.2007
Где: г. Саратов

Репутация: нет
Всего: нет



Мда вероятность для регионов получается довольно маленькая, потомучто многие провайдеры все равно как москва считаются ... спасибо за помощь пойду другим путём!
PM MAIL WWW ICQ Skype   Вверх
SqueeZe
Дата 10.1.2008, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 1.10.2007
Где: Санкт-Петербург

Репутация: 1
Всего: 1



Довольно приличное решение в виде класса и баз есть на этом сайте (кстати ОЧЕНЬ полезном!):

К сожалению, для доступа к файлам нужно зарегистрироваться, но это того стоит.

http://www.phpclasses.org/browse/package/2363.html

Некоторое приведу здесь. 
Это пример работы со следующим классом:
Код

<?php

require_once('CountryFromIP.inc.php');

$ip ='202.164.32.81';
//$ip ='210.25.55.2';

$object = new CountryFromIP();

$countryName =  $object->GetCountryName($ip);
$flagPath =  $object->ReturnFlagPath();

echo "<BR> <B>Country: </B>".$countryName;
echo "<BR> <B>Flag: </B> <img src=".$flagPath." border='0'>";
?> 


Сам класс:
Код

<?Php
/**
* This class generates the country name and its flag from its IP address
*
*
* @author Rochak Chauhan
*/

class CountryFromIP {

     private $CountryIPDatabase = 'CountryIPDatabase.txt';
     private $ip = '';

    /**
     * Function to validate IP ( please modify it according to your needs)
     *
     * @param $ip - string
     *
     * @return boolean
     */
    public function ValdateIP($ip) {
        $ipArray = explode(',',$ip);

        if(count($ipArray) != 4) {
            echo "<font color='red' size='3'> <b>ERROR: </b> Invalid IP</font>";
            return false;
        }
        else {
            return true;
        }
    }

    /**
     * Function to return Country name from the IPDatabase
     *
     * @param $ip string
     *
     * @return string - name of the country, false otherwise
     */
    public function GetCountryName($ip) {
        $this->ip = $ip;
        $ip = sprintf("%u", ip2long($ip));
    
        $csvArray = file($this->CountryIPDatabase);
    
        for($i=0; $i<count($csvArray); $i++) {
            $arrayOfLine = explode(',', $csvArray[$i]);
            if($ip >= $arrayOfLine[0] && $ip <= $arrayOfLine[1] ) {
                return $countryName = $arrayOfLine[2];
            }
        }
        return false;
    }

    /**
     *  Function to return local path to Country's flag
     *
     * @param $ip - string
     *
     * @return string - local path to flag image
     */
    public function ReturnFlagPath() {

        if($countryName = trim(ucwords(strtolower($this->GetCountryName($this->ip))) )) {
                        $countryName = str_replace(' ','%20',$countryName);
            return "flag/$countryName.gif";
        }
        else {
            return false;
        }
    }
    
}
?> 


А это небольшой фрагмент одной из 5 баз. 

Код

1358400256,1358400511,AFGHANISTAN
3642070112,3642070127,AFGHANISTAN
3650609920,3650610175,AFGHANISTAN
3650610688,3650611455,AFGHANISTAN
1347305472,1347309567,ALBANIA
3252439552,3252439583,ALBANIA
3254649088,3254649855,ALBANIA
3273049856,3273050111,ALBANIA
3273051648,3273051967,ALBANIA
3642290176,3642294271,ALBANIA
1044234240,1044250623,ALGERIA
1049707520,1049708031,ALGERIA
1346600960,1346605055,ALGERIA
1347944448,1347948543,ALGERIA
1357367296,1357367807,ALGERIA
1358299136,1358303231,ALGERIA
1358512128,1358516223,ALGERIA
1360412672,1360420863,ALGERIA
1360429056,1360433151,ALGERIA



PM MAIL ICQ   Вверх
KoLiZeI
Дата 10.1.2008, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 6.4.2007
Где: г. Саратов

Репутация: нет
Всего: нет



Здорово, но здесь же определение стран,а у нас проект расчитан на более узкую специализацию, точнее россию и определять надо с точностью до города.
PM MAIL WWW ICQ Skype   Вверх
skyboy
Дата 14.1.2008, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



KoLiZeI, если провайдер зарегистрирован так, что ip, принадлежащий ему, определяется как московский - то выхода нет. Максимум - дополнительно на клиенте определять часовой пояс. Но, скорее всего, это будет бессмысленной тратой времени.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0480 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.