Extração de endereços IP do texto

PHP Medium regex

Tarefa «Extração de endereços IP do texto»

Escreva um programa em PHP que lê linhas da entrada padrão e extrai delas todos os endereços IPv4 válidos. Um endereço IP consiste em quatro números de 0 a 255, separados por pontos. Zeros à esquerda não são permitidos, a menos que o número seja 0. Os endereços podem estar rodeados por espaços ou sinais de pontuação. Exiba cada endereço encontrado em uma linha separada, na ordem em que aparecem no texto. Se nenhum endereço for encontrado, exiba uma linha em branco.

Formato de Entrada

Várias linhas de texto, cada uma com até 1000 caracteres. O número total de linhas não excede 100.

Formato de Saída

Cada endereço IPv4 encontrado em uma linha separada, na ordem de aparecimento. Se não houver endereços, exiba uma linha em branco.

Exemplos

Exemplo 1

ENTRADA
Connect to 172.16.0.1 and 192.168.0.255
SAÍDA
172.16.0.1 192.168.0.255

Exemplo 2

ENTRADA
Invalid addresses: 256.1.2.3, 1.2.3.4.5, 0.0.0.0
SAÍDA
0.0.0.0

Exemplo 3

ENTRADA
Invalid: 999.1.2.3 but valid: 1.2.3.4
SAÍDA
1.2.3.4

Exemplo 4

ENTRADA
No addresses here!
SAÍDA
main.php