Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: не работает регулярное выражение для ip адреса

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
PATCH
Отправлено: 15 Января, 2012 - 21:12:57
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)




собствено ничего замудреного ненадО) скрипт для парсинга с 1 страницы своего ip
т.е регулярное выражение вида 0-9 . 0-9 . 0-9 . 0-9 1-3 символа
написал так
PHP:
скопировать код в буфер обмена
  1. preg_match_all("/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/",$text,$array);
- но массив пустой где ошибка?
вот сайт http://www[dot]myip[dot]ru/get_ip.php
 
 Top
EuGen Администратор
Отправлено: 15 Января, 2012 - 21:16:15
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
PATCH
Отправлено: 15 Января, 2012 - 21:20:29
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)





array(1) { [0]=> array(0) { } }

(Отредактировано автором: 15 Января, 2012 - 21:20:54)

 
 Top
vectorserver
Отправлено: 15 Января, 2012 - 21:27:28
Post Id



Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Нояб. 2011  


Помог: 3 раз(а)




А может самму написать типо так наскоряк (уже свой сервис)
PHP:
скопировать код в буфер обмена
  1. function getIP() {
  2. $content;
  3. if (getenv("HTTP_CLIENT_IP")) $content = getenv("HTTP_CLIENT_IP"); //сам пхп проверяет ип клиента
  4. else if(getenv("HTTP_X_FORWARDED_FOR")) $content = getenv("HTTP_X_FORWARDED_FOR") ; //определение прокси серворов
  5. else if(getenv("REMOTE_ADDR")) $content = getenv("REMOTE_ADDR");  //определение IP адреса
  6. else $content = "Не определен"; //если нет
  7. return $content;
  8. }
  9.  
  10. $ip = getIP();
  11. echo "Твой ип адрес: ".$ip;
 
 Top
PATCH
Отправлено: 15 Января, 2012 - 23:08:55
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)




да мне не сервис надо а чисто ип вырезать)
 
 Top
OrmaJever
Отправлено: 15 Января, 2012 - 23:16:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




PATCH, а зачем его вырезать если можно определить самому? Однако


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
PATCH
Отправлено: 15 Января, 2012 - 23:51:07
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)




OrmaJever пишет:
PATCH, а зачем его вырезать если можно определить самому?
своеобразная проверка на анонимность прокси
 
 Top
EuGen Администратор
Отправлено: 16 Января, 2012 - 06:45:48
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Вероятно, я забыл группы.
/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
LIME
Отправлено: 16 Января, 2012 - 08:00:51
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




PATCH пишет:
своеобразная проверка на анонимность прокси
и что?
заходи на свой сервис через прокси в чем проблема?
(Добавление)
EuGen пишет:
/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/
/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/
разницы не вижу
просветите
 
 Top
PATCH
Отправлено: 26 Февраля, 2012 - 18:47:06
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)




) не работают регулярки D) тогда я прост забил на это но сча опять понадобилось) выдрать все ip из файла)
 
 Top
Panoptik
Отправлено: 26 Февраля, 2012 - 19:21:08
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




ну самым правильным будет наверное такой паттерн
/[0-2](?:[\d]*){0,2}\.[0-2](?:[\d]*){0,2}\.[0-2](?:[\d]*){0,2}\.[0-2](?:[\d]*){0,2}/


-----
Just do it
 
 Top
PATCH
Отправлено: 26 Февраля, 2012 - 19:32:56
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)




Panoptik пишет:
ну самым правильным будет наверное такой паттерн
/[0-2](?:[\d]*){0,2}\.[0-2](?:[\d]*){0,2}\.[0-2](?:[\d]*){0,2}\.[0-2](?:[\d]*){0,2}/
этот не работает возвращает пустой массив зато эти работают
Цитата:
/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/
/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/
для жесткой промодерации ип они не сгодятся но мне собствено это и ненадо чисто из файла выдрать ip
но это ненадо) у меня регулярки не работали из за своей де глупости)) я замест строки передовал массив)

(Отредактировано автором: 26 Февраля, 2012 - 19:39:26)

 
 Top
IllusionMH
Отправлено: 26 Февраля, 2012 - 19:49:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




PATCH, последний пункт - регулярка для IP
8 полезных регэкспов с наглядным разбором
 
 Top
hiddensy
Отправлено: 27 Июня, 2012 - 13:29:45
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Не могу разобраться как правильно написать регулярное выражение.

Нужно IP:port разбить и записать в массив

Пример: 192.168.2.34:8080

Результат:
Array
(
[0] => 192
[1] => 168
[2] => 2
[3] => 34
[4] => 8080
)

Помогите составить регулярку пожалуйста
(Добавление)
Наконец-то разобрался... Если кому интересно, то вот рабочий вариант

PHP:
скопировать код в буфер обмена
  1.  
  2. $getIP = "192.168.2.34:8080";
  3. preg_match_all('/([0-9]+)/',$getIP,$arr);
  4. for ($i=0; $i<count($arr[1]); $i++) echo $arr[1][$i]."<br>";
  5.  
 
 Top
DeepVarvar Супермодератор
Отправлено: 27 Июня, 2012 - 14:24:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




hiddensy пишет:
/([0-9]+)/
Ваш вариант полурабочий.
Он пропускает некорректные значения.
Диапазон IPv4: 0.0.0.0:0 - 255.255.255.255:65535
И мне кажется вы это знаете.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB