И так, 13 Марта, 2009 16:07 появилась следующая новость на данном ресурсе "".
Это событие необычайно меня обрадовало, ещё бы такой сервис на таком ресурсе и сразу ручки шаловливые зачесались!
[spoiler]
Буквально через 10 минут был готов простейший код запроса ip, в ходе обсуждений он получился следующим (сделано на curl):
Результат запроса представленного в коде:

По коду пару слов, он возвращает:
Если ничего не найдено вернёт false в параметре FIND массива.
Что касается минусов:
1) Поиск только по России;
2) Сервер удалённый, файлы лежат не у вас на сервере;
3) Отдаётся ответ пока не xml формате, но думаю это временно, если бы было в xml не пришлось бы парсить, а заюзать можно бы было простенький SimpleXMLElement.
Плюсы:
1) Сервис бесплатный;
2) Данные постоянно обновляются и за это отвечаете не вы, голова за это болит у других людей;
3) Вы не нагружаете свою машину жёсткими запросами в многомебайтной базе ip...
Чего хочу добиться этим постом? Улучшения и обсуждения данной темы, возможные варианты встраивания это в БУС и т.д.
Хорошего всем дня.
Это событие необычайно меня обрадовало, ещё бы такой сервис на таком ресурсе и сразу ручки шаловливые зачесались!
[spoiler]
Буквально через 10 минут был готов простейший код запроса ip, в ходе обсуждений он получился следующим (сделано на curl):
<?php
function getip($GetRIP)
{
$data = "<ipquery><fields><all/></fields><ip-list><ip>".$GetRIP."</ip></ip-list></ipquery>";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://194.85.91.253:8090/geo/geo.html");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$xml = curl_exec($ch);
curl_close($ch);
//echo $xml;
$messge="!<message>(.*?)</message>!si";
preg_match($messge, $xml, $main_ar["message"]);
if($main_ar["message"][1]!="Not found")
{
$district="!<district>(.*?)</district>!si";
$region="!<region>(.*?)</region>!si";
$town="!<city>(.*?)</city>!si";
preg_match($district, $xml, $main_ar["district"]);
preg_match($region, $xml, $main_ar["region"]);
preg_match($town, $xml, $main_ar["city"]);
return array("FIND"=>1,"DISTRICT"=>$main_ar["district"][1], "REGION"=>$main_ar["region"][1],"TOWN"=>$main_ar["city"][1]);
}
else return array("FIND"=>0);
}
echo "<pre>"; print_r(getip($_SERVER["REMOTE_ADDR"])); echo "</pre>";
?>
|
Результат запроса представленного в коде:

По коду пару слов, он возвращает:
- "город, к которому относится искомый ip",
- "регион, к которому относится искомый ip",
- "федеральный округ РФ, к которому относится искомый ip".
Если ничего не найдено вернёт false в параметре FIND массива.
Что касается минусов:
1) Поиск только по России;
2) Сервер удалённый, файлы лежат не у вас на сервере;
3) Отдаётся ответ пока не xml формате, но думаю это временно, если бы было в xml не пришлось бы парсить, а заюзать можно бы было простенький SimpleXMLElement.
Плюсы:
1) Сервис бесплатный;
2) Данные постоянно обновляются и за это отвечаете не вы, голова за это болит у других людей;
3) Вы не нагружаете свою машину жёсткими запросами в многомебайтной базе ip...
Чего хочу добиться этим постом? Улучшения и обсуждения данной темы, возможные варианты встраивания это в БУС и т.д.
Хорошего всем дня.