Вырезать IP адрес из строки

sickboy

Новичок
Вырезать IP адрес из строки

Hi,

помогите пожалуйста с регулярным выражением, нужно получить список IP адресов.
Имеется текст:

Starting nmap 3.90 ( http://www.insecure.org/nmap/ ) at 2006-01-13 23:11 MSK
Host 192.168.1.0 seems to be a subnet broadcast address (returned 1 extra pings).
Host 192.168.1.1 appears to be up.
Host 192.168.1.2 appears to be up.
[cut]
Host 192.168.1.202 appears to be up.
Host 192.168.1.211 appears to be up.
Nmap finished: 256 IP addresses (23 hosts up) scanned in 1.471 seconds
PHP:
preg_replace ("/^.+\s(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s.+$/", "\$1", fgets ($handle));
на выходе получаю:

Starting nmap 3.90 ( http://www.insecure.org/nmap/ ) at 2006-01-13 18:41 MSK
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.9
[cut]
192.168.1.215
Nmap finished: 256 IP addresses (22 hosts up) scanned in 1.488 seconds
 

white phoenix

Новичок
PHP:
$string = 'Starting nmap 3.90 ( [url]http://www.insecure.org/nmap/[/url] ) at 2006-01-13 23:11 MSK 
Host 192.168.1.0 seems to be a subnet broadcast address (returned 1 extra pings). 
Host 192.168.1.1 appears to be up. 
Host 192.168.1.2 appears to be up. 
[cut] 
Host 192.168.1.202 appears to be up. 
Host 192.168.1.211 appears to be up. 
Nmap finished: 256 IP addresses (23 hosts up) scanned in 1.471 seconds'; 
preg_match_all('~(?:\A|\s)(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?:\s|\Z)~',$string,$matches);
var_dump($matches[1]);
/*
array(5) {
  [0]=>
  string(11) "192.168.1.0"
  [1]=>
  string(11) "192.168.1.1"
  [2]=>
  string(11) "192.168.1.2"
  [3]=>
  string(13) "192.168.1.202"
  [4]=>
  string(13) "192.168.1.211"
}
*/
 

white phoenix

Новичок
mani13
А какая разница? Той же регуляркой вынимать надо будет. А парсер XML использовать нецелесообразно.
 

SiMM

Новичок
> SimpleXML используется легко и просто
"Легко и просто" - не антоним "нецелесообразно".
 
Сверху