При загрузке страницы, скажем, на facebook.com страница загружает несколько ресурсов с нескольких других сайтов, таких как fbexternal-a.akamaihd.net или fbcdn-profile-a.akamaihd.net.
Мне нужно создать скрипт на PHP, Bash, Python или просто на любом другом языке, который может получить все эти адреса.
Как я могу это сделать? Есть ли веб-сервис, который делает это?
Чуть больше того, чего я пытаюсь достичь: есть маршрутизатор, который должен блокировать весь доступ, кроме одной страницы, и его ресурсы, которые могут находиться на других серверах. Поскольку этот ACL (список контроля доступа) не основан на DNS, мне нужно получить все IP-адреса, чтобы добавить их в список.
Я знаю, что IP-адреса часто меняются, однако это единственный обходной путь, который работает сейчас (путем получения IP-адресов вручную), учитывая, что маршрутизатор не имеет ACL на основе DNS.
Вам нужно будет разбить это на части, но это должно быть выполнимо. Шаги, которые я вижу, вам нужно сделать:
1. Получить источник веб-страницы — http://php.net/manual/en/function.file-get-contents.php
2. Сгенерировать массив доменов — PHP: регулярное выражение для получения URL-адреса из строки
3. Конвертировать доменные имена в IP — http://php.net/dns_get_record
Других решений пока нет …