![]() |
Страна по ip - помогите разобраться
Ниже приведен код функции, возвращающей страну по ip адресу:
Код:
function country_by_ip ($ip) Кто знает - просьба помочь. Нужно, чтобы возвращались страны (UA, RU, PL). |
Найти другой сервак, который выдает нужное.
|
если в этом коде добавить "echo $str;" перед "if ($country) " то видим, что ip адрес тут не передался:
Код:
fputs($sock, $ip."\r\n"); |
Ну вместо whois.ripe.net использовать что-нибудь иное. Что именно — не знаю.
|
Нарой где-нить базу айпишников, и whois не понадобится.
|
Цитата:
|
Цитата:
Ну, вот я написал функцию....проверил на RU, выдает что надо...примерно так в общем: Код:
function getCountry($ip) { |
А откуда такая уверенность, что символов в названии страны только два?
|
Хм =) Ну просто автор упомянул только три страны...и у всех двубуквенное обозначаение...
Цитата:
А сколько вообще максимально в буквенном коде стране может быть букв? Думаю...больше 4 не будет всяко? Тогда исправить 2 на 4 : Код:
$country = substr($country,0,4); |
Вырезать от "country:" до "#" или до конца строки, обтримать.
Задача на регулярные выражения для начинающих. Что характерно, автор вопроса скорее всего о нем уже забыл. |
Да, с регулярными выражениями пожалуй еще проще будет =) Тогда где-то так будет:
Код:
function getCountry($ip) { |
решетку потерял. Но так да, направление верное :)
|
А что за решетка-то? =) Понял что это "#", но что-то нигде её не видел...
|
Warning: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in ...
ни один код не заработал. Хотя файлы с других серверов у меня читаются. 2FFFantik У тебя этот код работает? |
Гм, а вы хоть чуть-чуть представляете, как оно работает и почему оно может не работать?
|
почему с других серверов читаются файлы, а с ripe.net нет - не понимаю
|
Потому что много желающих воспользоваться ripe.net для получения подобной информации, поэтому такие запросы блокируются.
|
:( жаль
|
FFFantik, от шара набрал адрес 184.23.2.1
получилось country: EU # Country is really world wide |
RIPE возвращает EU для не-RIPE-шных сетей, и (теоретически) для сетей, не имеющих отношения к географии.
вообще говоря, такое насилие над whois не приветствуется и может караться баном хоста. кстати о птичках, я собирал как-то такую базу. она весит немного, собирается несложно, есть готовые сборки третьими лицами. кто хочет, может по коду порыться на предмет регулярных выражений. |
Eric Gurt, у меня этот код работал с моего локалхоста.
Skubent, ну и возвратится искомое *EU*, чего еще надо-то. Ну вот еще один небольшой код, с применением CURL-а на сей раз. Проверил на бесплатном хостинге 110mb.com Там работает. Код:
function getCountry($ip) { |
| Часовой пояс GMT +4, время: 14:32. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.