Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.08.2007, 01:14
Eric Gurt вне форума Посмотреть профиль Отправить личное сообщение для Eric Gurt Посетить домашнюю страницу Eric Gurt Найти все сообщения от Eric Gurt
  № 1  
Ответить с цитированием
Eric Gurt
 
Аватар для Eric Gurt

Регистрация: Oct 2006
Сообщений: 395
Arrow Страна по ip - помогите разобраться

Ниже приведен код функции, возвращающей страну по ip адресу:
Код:
function country_by_ip ($ip) 
{ 
	$sock = fsockopen ("whois.ripe.net", 43, $errno, $errstr); 
	if (!$sock) 
	{ 
		return "??"; 
	} 
	else 
	{ 
		fputs($sock, $ip."\r\n"); // Здесь ошибка?
		while (!feof($sock)) 
		{ 
			$str=fgets ($sock, 128); 
			//echo $str; // И видим, что что-то не так с fputs
			$country=substr(strstr($str,"country:"), 8); 
			if ($country) 
			{ 
				$country=trim($country); 
				$country=substr($country, 0, 2); 
				return strtoupper($country); 
			} 
		} 
		return "??";
	} 
	fclose ($sock);
}
Эта функция возвразает EU (Европу) (!?) вместо UA, RU или PL. Причем год назад все работало.
Кто знает - просьба помочь. Нужно, чтобы возвращались страны (UA, RU, PL).
__________________
.:Make it better:.
www.gevanni.com

Старый 07.08.2007, 09:59
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Найти другой сервак, который выдает нужное.

Старый 07.08.2007, 10:33
Eric Gurt вне форума Посмотреть профиль Отправить личное сообщение для Eric Gurt Посетить домашнюю страницу Eric Gurt Найти все сообщения от Eric Gurt
  № 3  
Ответить с цитированием
Eric Gurt
 
Аватар для Eric Gurt

Регистрация: Oct 2006
Сообщений: 395
если в этом коде добавить "echo $str;" перед "if ($country) " то видим, что ip адрес тут не передался:
Код:
fputs($sock, $ip."\r\n");
а разве есть другой?
__________________
.:Make it better:.
www.gevanni.com

Старый 07.08.2007, 10:37
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Ну вместо whois.ripe.net использовать что-нибудь иное. Что именно — не знаю.

Старый 07.08.2007, 11:56
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 5  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Нарой где-нить базу айпишников, и whois не понадобится.

Старый 13.08.2007, 18:08
anant вне форума Посмотреть профиль Отправить личное сообщение для anant Найти все сообщения от anant
  № 6  
Ответить с цитированием
anant

Регистрация: Aug 2007
Сообщений: 1
Цитата:
Сообщение от Kikasso
Нарой где-нить базу айпишников, и whois не понадобится.
Это действительно лучше
__________________
www.a-novosti.ru,
www.a-novosti.com,

Старый 16.08.2007, 01:47
FFFantik вне форума Посмотреть профиль Отправить личное сообщение для FFFantik Найти все сообщения от FFFantik
  № 7  
Ответить с цитированием
FFFantik

Регистрация: May 2007
Сообщений: 22
Цитата:
Сообщение от Eric Gurt
Кто знает - просьба помочь. Нужно, чтобы возвращались страны (UA, RU, PL).
Так а в чем сложность? =) Тут буквально пару строк и писать..
Ну, вот я написал функцию....проверил на RU, выдает что надо...примерно так в общем:
Код:
function getCountry($ip) {                       

$adress='http://www.ripe.net/fcgi-bin/whois?form_type=simple&full_query_string=&searchtext='.$ip.'&do_search=Search';
        
        $str = file_get_contents($adress);
        $ar = explode('country:         ',$str);
        $country = $ar[1];
        $country = substr($country,0,2);
        $country = trim($country);
        return $country;
}

Старый 16.08.2007, 01:59
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
А откуда такая уверенность, что символов в названии страны только два?

Старый 16.08.2007, 06:27
FFFantik вне форума Посмотреть профиль Отправить личное сообщение для FFFantik Найти все сообщения от FFFantik
  № 9  
Ответить с цитированием
FFFantik

Регистрация: May 2007
Сообщений: 22
Хм =) Ну просто автор упомянул только три страны...и у всех двубуквенное обозначаение...
Цитата:
Сообщение от Eric Gurt
Нужно, чтобы возвращались страны (UA, RU, PL).
и я воспринял это (то, что ему нужна инфа только о трех странах) буквально...видимо зря =)
А сколько вообще максимально в буквенном коде стране может быть букв?
Думаю...больше 4 не будет всяко? Тогда исправить 2 на 4 :
Код:
$country = substr($country,0,4);
и дальше как было..

Старый 16.08.2007, 08:07
Skubent вне форума Посмотреть профиль Отправить личное сообщение для Skubent Посетить домашнюю страницу Skubent Найти все сообщения от Skubent
  № 10  
Ответить с цитированием
Skubent
 
Аватар для Skubent

Регистрация: Oct 2005
Адрес: Млечный Путь, 7-й рукав, YD AC-451, 3-я планета.
Сообщений: 996
Отправить сообщение для Skubent с помощью ICQ
Вырезать от "country:" до "#" или до конца строки, обтримать.
Задача на регулярные выражения для начинающих.

Что характерно, автор вопроса скорее всего о нем уже забыл.
__________________
Тут вы найдете ответы на почти все вопросы:
А можно ли сделать так ? - Можно.
Почему не работает ? - Неправильно сделано.
Где ошибка ? - В ДНК.

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:05.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.