Таблица worldip содержит поля start, end и code. В одной строке записан один диапазон сети. start и end - это поля типа integer с IP номерами, code содержит двухбуквенный код страны, например "RU". Конвертация IP адреса в IP номер происходит по следуюшей формуле: Code: IP Number = [COLOR=Cyan]16777216[/COLOR]*A + [COLOR=Cyan]65536[/COLOR]*B + [COLOR=Cyan]256[/COLOR]*C + D где IP Address = A.B.C.D В PHP есть готовая функция, которая возвращает IP номер - ip2long($ip_address). Например, IP адрес 91.121.147.207 конвертируется в IP номер 1534694351 Вы можете получить код страны из базы, например, таким запросом: Code: [B]SELECT[/B] code [B]FROM[/B] worldip [B]WHERE start[/B]<=IP_NUMBER [B]and end[/B]>=IP_NUMBER Если вы инсталлируете вторую таблицу с названиями стран, то так можно получить и код и страну одним запросом: Code: [B]SELECT[/B] wl.code,wl.country [B]FROM[/B] worldip w [B]LEFT JOIN[/B] worldip_land wl ON (w.code=wl.code) [B]WHERE w.start[/B]<=IP_NUMBER and w.end>=IP_NUMBER или только название страны: Code: [B]SELECT[/B] wl.country [B]FROM[/B] worldip_land wl [B]LEFT JOIN[/B] worldip w [B]ON[/B] (w.code=wl.code) [B]WHERE w.start[/B]<=IP_NUMBER [B]and[/B] w.end>=IP_NUMBER Если вы используете API (чтобы получать более актуальные данные), вы можете поставить таблицу с названиями стран. Code: [B]SELECT[/B] country [B]FROM[/B] worldip_land [B]WHERE[/B] code=[COLOR=DarkRed]"GB"[/COLOR] вернет "United Kingdom" или "Великобритания" для русского варианта таблицы Спасибо mgyk за подсказку использовать внутренние функции MySQL для преобразования адресов. Во всех вышеперечисленных примерах можно заменить IP_NUMBER на inet_aton('IP_ADDR') Code: [B]SELECT[/B] code [B]FROM[/B] worldip [B]WHERE start[/B]<=inet_aton([COLOR=DarkRed]'77.77.77.77'[/COLOR]) [B]and[/B] end>=inet_aton([COLOR=DarkRed]'77.77.77.77'[/COLOR])