Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: "Вытаскивание" ip адреса из строки
 
 автор: levsha   (25.08.2007 в 12:17)   письмо автору
 
 

Допустим есть строка. В ней куча букв и цифр, в том числе и ip адресов с портами. Как мне извлечь все ip адреса из строки. Пробую шаблон /(\d+\.?){4}/ . Но кроме ip выдается еще и номер порта, а он мне не нужен! Подскажите пожалуйста, как правильно надо сделать.

   
 
 автор: Саня   (26.08.2007 в 01:29)   письмо автору
 
   для: levsha   (25.08.2007 в 12:17)
 

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

   
 
 автор: kasmanaft   (26.08.2007 в 19:05)   письмо автору
 
   для: levsha   (25.08.2007 в 12:17)
 

Странно. Можно пример?
По идее должно работать..

   
 
 автор: levsha   (27.08.2007 в 16:51)   письмо автору
 
   для: kasmanaft   (26.08.2007 в 19:05)
 

Использую preg_match_all. Найденные значения извлекаю в указанный массив. В массиве получаются числа: сам ip, последняя цифра в ip или порт.

   
 
 автор: Faraon   (27.08.2007 в 17:03)   письмо автору
 
   для: levsha   (27.08.2007 в 16:51)
 

Пример записи приведите откуда надо вытащить ip

   
 
 автор: Faraon   (27.08.2007 в 17:09)   письмо автору
 
   для: levsha   (27.08.2007 в 16:51)
 

Если порт прописан через двоеточие

/(\d+\.?[^:]){4}/

   
 
 автор: kasmanaft   (27.08.2007 в 17:18)   письмо автору
 
   для: levsha   (27.08.2007 в 16:51)
 

Это пример? :)

   
 
 автор: Faraon   (27.08.2007 в 17:27)   письмо автору
 
   для: kasmanaft   (27.08.2007 в 17:18)
 

Это я предположил как записан ip и порт :)

   
 
 автор: kasmanaft   (27.08.2007 в 17:59)   письмо автору
 
   для: Faraon   (27.08.2007 в 17:27)
 

Не, я у levsha спрашивал ;)

   
 
 автор: levsha   (27.08.2007 в 19:21)   письмо автору
 
   для: kasmanaft   (27.08.2007 в 17:59)
 

Вот:
$string_inf = "218.249.118.185:19597
200.206.178.126:6588
80.172.24.55:88
24.155.253.33:8000 ";
$pattern = "/(\d+\.?){4}/";
preg_match_all($pattern, $string_inf, $array_ip, PREG_PATTERN_ORDER);
print_r($array_ip);

Результат:
Array
(
[0] => Array
(
[0] => 218.249.118.185
[1] => 19597
[2] => 200.206.178.126
[3] => 6588
[4] => 80.172.24.55
[5] => 24.155.253.33
[6] => 8000
)

[1] => Array
(
[0] => 185
[1] => 7
[2] => 126
[3] => 8
[4] => 55
[5] => 33
[6] => 0
)

)

   
 
 автор: kasmanaft   (27.08.2007 в 20:04)   письмо автору
 
   для: levsha   (27.08.2007 в 19:21)
 

Да, точно.... Так происходит, потому что "точка" в шаблоне помечена, как необязательная.
То есть подойдет и просто четыре цифры (\d+\.?){4}

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования