Проверка ip

donflash

Вареник клуба
Проверка ip

Правильна ли такая проверка?

PHP:
$_ip = $_SERVER['REMOTE_ADDR'];

if ($_dots = explode('.', $_ip))
{
	if (count($_dots) == 4)
	{
		foreach ($_dots as $_dot)
		{
			if (!in_array($_dot, range(0,255)))
			{
				define('ip', false, true);
				break;
			}
		}
		
		define('ip', $_ip, true);
		unset($_ip, $_dots);
	}
	else define('ip', false, true);
}
else define('ip', false, true);
 

Фанат

oncle terrible
Команда форума
мощно
Скажи, а что заставило тебя сделать такую проверку?
 

donflash

Вареник клуба
Не знаю, это первое, что пришло в голову.... :)

Вопрос не в оптимизации кода (хотя он и так ест мало), а в функционале...

Какие другие варианты?
 

Фанат

oncle terrible
Команда форума
Скажи, а что заставило тебя сделать такую проверку?
 

denver

?>Скриптер
Не надо проверять $_SERVER['REMOTE_ADDR'], там всегда будет всё правильно.
 

hermit_refined

Отшельник
BRat
хм... ещё один специалист по проверке $_SERVER['REMOTE_ADDR'] на валидность?..
смилуйтесь. я же сегодня уснуть не смогу.
 

Фанат

oncle terrible
Команда форума
о господи. набежали профессора
donflash
у тебя есть 2 минуты на то, чтобы объяснить, зачем тебе вообще понадобилась такая проверка.

-~{}~ 09.12.06 00:22:

Не. denver, по ходу, шутит.
 

BRat

o_0
hermit_refined
не, ну если уж решил проверять, так пусть проверяет правильно :)) а зачем, эт уж не мое дело )
 

donflash

Вареник клуба
hermit_refined, ну так иди спать.

Фанат, вопрос не в том, для чего это.... Надо и всё. Есть такое понятие, как начальство (знаешь, что это такое), которому абсолютно пофигу для чего это, надо и всё! Достаточно аргументов?
 

Фанат

oncle terrible
Команда форума
donflash
ты неправильно понял задачу.
переспроси ещё раз, и точно скопируй сюда
 

Nogrogomed

Новичок
Зачем что-то придумывать, если все уже давно придумано!
ip2long() и смотри на описание случаев инвалидности.
 

Krishna

Продался Java
А где проверка на целое? Вдруг $_SERVER['REMOTE_ADDR'] дроби вернет??
 

donflash

Вареник клуба
Автор оригинала: Фанат
donflash
ты неправильно понял задачу.
переспроси ещё раз, и точно скопируй сюда
Действующие лица: Я, директор (тот человек, которого Фанат назвал идиотом)


Директор: "Алексей, сделай проверку IP адреса на валидность при приёме его (ip) через $_SERVER['REMOTE_ADDR']".
Я: "Ага, сейчас сделаю"..

:)
 

Фанат

oncle terrible
Команда форума
Жаль. Я надеялся, что ты, всё-таки, неправильно понял задачу.
В ваш диалог вступает третий персонаж.

Фанат: проверка IP адреса на валидность при приёме его (ip) через $_SERVER['REMOTE_ADDR'] лишена смысла. Он всегда валидный. Это следует из технологии TCP/IP.

Сегодня я добрый, и не буду никоим образом вмешиваться в ваши с директором отношения.
Но если ты хочешь сохранить лицо здесь, то не будешь прикрываться директором, мамой, учительницей, а честно скажешь. или "всё равно не понимаю, как это может быть". или "окей, я всё понял, вопрос снимается".
 

donflash

Вареник клуба
Фанат, я прекрасно знаю, что $_SERVER['REMOTE_ADDR'] будет возвращать правильный ip, но мне, что в тяготу успокоить амбиции директора? :)

P.s. вопрос снимается, ввиду тупости директора... :)
 
Сверху