|
|
|
| Допустим есть строка. В ней куча букв и цифр, в том числе и ip адресов с портами. Как мне извлечь все ip адреса из строки. Пробую шаблон /(\d+\.?){4}/ . Но кроме ip выдается еще и номер порта, а он мне не нужен! Подскажите пожалуйста, как правильно надо сделать. | |
|
|
|
|
|
|
|
для: levsha
(25.08.2007 в 12:17)
| | /(\d{1,3}\.){3}\d{1,3}/ | |
|
|
|
|
|
|
|
для: levsha
(25.08.2007 в 12:17)
| | Странно. Можно пример?
По идее должно работать.. | |
|
|
|
|
|
|
|
для: kasmanaft
(26.08.2007 в 19:05)
| | Использую preg_match_all. Найденные значения извлекаю в указанный массив. В массиве получаются числа: сам ip, последняя цифра в ip или порт. | |
|
|
|
|
|
|
|
для: levsha
(27.08.2007 в 16:51)
| | Пример записи приведите откуда надо вытащить ip | |
|
|
|
|
|
|
|
для: levsha
(27.08.2007 в 16:51)
| | Если порт прописан через двоеточие
| |
|
|
|
|
|
|
|
для: levsha
(27.08.2007 в 16:51)
| | Это пример? :) | |
|
|
|
|
|
|
|
для: kasmanaft
(27.08.2007 в 17:18)
| | Это я предположил как записан ip и порт :) | |
|
|
|
|
|
|
|
для: Faraon
(27.08.2007 в 17:27)
| | Не, я у levsha спрашивал ;) | |
|
|
|
|
|
|
|
для: 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
)
) | |
|
|
|
|
|
|
|
для: levsha
(27.08.2007 в 19:21)
| | Да, точно.... Так происходит, потому что "точка" в шаблоне помечена, как необязательная.
То есть подойдет и просто четыре цифры (\d+\.?){4} | |
|
|
|