Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка на IP адрес. 
:(
    Опции темы
InfMag
Дата 3.4.2005, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 1
Всего: 4



Люди, плиз, подскажите мне preg_match, ergei или еще чего, чтобы определить IP ли это адрес.
Типа чтобы было четыре числа между тремя точками и каждый числами от 0 до 255 или как там правильнее. Помоему первое число не может равняться нулю... smile
PM   Вверх
Mal Hack
Дата 3.4.2005, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



рэгом геморройно. Проще. Разбей explode по точкам. Если получаешь не 4 элемента это не IP.
Затем проверяешь каждое на is_int(); и больше 1 меньше 255..

PM ICQ   Вверх
Opik
Дата 3.4.2005, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



Юзай ip2long
Цитата
The function ip2long() generates an IPv4 Internet network address from its Internet standard format (dotted string) representation. If ip_address is invalid then -1 is returned. Note that -1 does not evaluate as FALSE in PHP.

PM MAIL Skype   Вверх
InfMag
Дата 6.4.2005, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 1
Всего: 4



Opr
Че-го то я не понял про ip2long


Mal Hack
is_int() и ему подобным я не доверяю, помню про траблы, если минусы или нули подписывать. Ошибки мне не нужны.
И почему с регами геморойно? Их писать долго? А на практике что будет быстрее, реги или "система нипиль" smile ?
PM   Вверх
Mal Hack
Дата 6.4.2005, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(InfMag @ 6.4.2005, 17:44)
is_int() и ему подобным я не доверяю,

Надо уметь применять...
Цитата(InfMag @ 6.4.2005, 17:44)
если минусы или нули подписывать.

Это мало что изменит.

Цитата(InfMag @ 6.4.2005, 17:44)
И почему с регами геморойно?

В регулярках условий нет (вроде)... А без них - никак.
PM ICQ   Вверх
InfMag
Дата 6.4.2005, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 1
Всего: 4



Mal Hack
Не раскажешь как пользоваться is_int()'ом?
PM   Вверх
Mal Hack
Дата 6.4.2005, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



PM ICQ   Вверх
InfMag
Дата 7.4.2005, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 1
Всего: 4



Mal Hack
Неа. Я имел виду: как правильно им пользоваться?
PM   Вверх
Opik
Дата 7.4.2005, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



InfMag
а че тут непонятно?
Код

if(ip2long($_SERVER['REMOTE_ADDR']) == -1)
{
 print 'invalid IP';
}
else
{
 print 'valid IP';
}

PM MAIL Skype   Вверх
Gold Dragon
Дата 8.4.2005, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



Mal Hack
наверное лучше и правильнее быдет использовать is_numeric. Так как получается не число в итоге, а числовая строка

Вот мой карявенький код smile
Код

$ip = '198.24.86.1';
$id = Array ('Всё отлично','Фигушки, это не IP`шник');
$ind = 0;

$ip_array = explode('.', $ip);

if (count($ip_array)==4)
{
for ($i=0;$i<4;$i++){
     if (is_numeric($ip_array[$i]))
     {
        if (($ip_array[$i]<0) or ($ip_array[$i]>255)){$ind=1;}
     }
     else{$ind=1;}
}
}
else{$ind=1;}

echo $id[$ind];




--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
skalex
Дата 8.4.2005, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 8
Всего: 23



Цитата
В регулярках условий нет (вроде)...

Как это нету... Вот синтаксис регулярного выражения с условием:
Код
(?(условие)шаблон1)

или
Код
(?(условие)шаблон1|шаблон2)

Подробная информация: http://ru.php.net/manual/ru/reference.pcre...tern.syntax.php (абзац "Условные подмаски")

P.S.
А вообще надо использовать, вариант, предлагаемый Opr!!!

Это сообщение отредактировал(а) Mace - 8.4.2005, 09:39
PM   Вверх
IZ@TOP
Дата 8.4.2005, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



А не проще таким образом поступить:
Код

<?php
$IP = '192.168.1.254';
preg_match("|^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$|", $IP, $M);
print_r($M);
if(($M[1] <= 255) && ($M[2] <= 255) &&($M[3] <= 255) && ($M[4] < 255)) {
    echo "IP is valid";
} else {
    echo "IP is invalid";
}
?>



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Ринат
Дата 8.4.2005, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 31.3.2005

Репутация: нет
Всего: нет



IZ@TOP прикольный вариант..рег понравился, простой главное smile интересный способ...
PM MAIL   Вверх
InfMag
Дата 8.4.2005, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 1
Всего: 4



Opr
А ip2long() от каких версий начинается?
PM   Вверх
skalex
Дата 8.4.2005, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 8
Всего: 23



Цитата
ip2long() от каких версий начинается?

Начиная с 4-ой.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0935 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.