В настоящее время я работаю над чем-то, и мне нужно извлечь все диапазоны IP-адресов (перечисленные в формате CIDR) на странице.
Вот пример URL, чтобы проиллюстрировать задачу:
Я знаю, как открыть файл удаленно и проанализировать JSON, мне просто нужно найти диапазоны IP-адресов в массиве и вывести их в файл.
Грубый Готов, но, кажется, извлечь желаемый контент — если не сомневаюсь, несколько мелких настроек увидят вас правильно.
$url='https://stat.ripe.net/data/registry-browser/data.json?include_backward_refs=1&preferred_version=0.3&resource=AS28961&use_live_lookups=1';
$data=file_get_contents( $url );
$json=json_decode( $data );
$backrefs=$json->data->backward_refs;
foreach( $backrefs as $backref ){
$fields=$backref->fields;
printf('<pre>%s</pre>',print_r( $fields[0]->value, true ));
}
Выход:
193.228.63.0/24
195.39.226.0/23
2001:67c:594::/48
Для вывода в файл
$filename = __DIR__ . '/cidr.txt'; /* change as appropriate */
$url='https://stat.ripe.net/data/registry-browser/data.json?include_backward_refs=1&preferred_version=0.3&resource=AS28961&use_live_lookups=1';
$data=file_get_contents( $url );
$json=json_decode( $data );
$backrefs=$json->data->backward_refs;
foreach( $backrefs as $backref ){
$fields=$backref->fields;
file_put_contents( $filename, $fields[0]->value . PHP_EOL, FILE_APPEND );
}
Других решений пока нет …