Intereting Posts
В чем смысл строки ** / * при использовании с grep? Как удалить статический сетевой интерфейс, если он не подключен? Команда (ы) установить tempfile на CentOS 6.4 Как я могу прозрачно кэшировать любой каталог или смонтированную файловую систему для чтения и записи? Не удается найти входные данные приемника при использовании pacmd Написание приостановленной программы в Linux Как отключить Nouveau на Fedora 18? Запустите команду в фоновом режиме, дождитесь определенной строки журнала, затем выполните новую команду на переднем плане Найти файл, проверить размер и перезаписать, когда размер файла отличается Название монтируемого тома в терминале отличается от GUI сначала скопируйте самые маленькие файлы? Что происходит, когда я подключаю кабель Ethernet? Как исправить unix, чтобы я мог использовать клавиши со стрелками в терминале? Стоит ли CentOS 7 неправильно сортировать записи меню ядра в grub.cfg? Gnome 3.12 на Debian Jessie замерзает, когда я открываю диалоги

Есть ли способ разрешить все IP-адреса PIA VPN со сценарием?

Я ищу способ получить полный список всех текущих IP-адресов для серверов PrivateInternetAccess. Мне нужен полный список, чтобы я мог вручную ввести их в killswitch для OpenVPN. Я использую Adrelanos VPN Firewall для killswitch, как описано здесь:

VPN (OpenVPN) Firewall Killswitch для пользователей Linux

Я видел на форумах PIA, что кто-то попросил список здесь: Список IP-адресов сервера
но поскольку службы начали блокировать IP-адреса, единственный способ получить их – через имена хостов. Это заняло бы много времени для меня.

Я хочу знать, есть ли, возможно, простой скрипт, который может пинговать серверы достаточно времени, чтобы сортировать IP-адреса и организовывать их. Любой другой метод также был бы фантастическим. Было бы легко, если бы каждое имя хоста имело только один сервер и IP-адрес, но на данный момент только имя хоста в Нидерландах содержит 278 серверов. Я не могу тратить время на pinging сервер снова и снова, вычеркивать избыточные IP-адреса, а затем рассчитывать, чтобы убедиться, что у меня все 278. Я не хочу только нидерландских IP-адресов. Я бы предпочел метод, простой, как ввод имени хоста и получение результатов. Будем признательны любому совету. Благодаря!

Я думаю, что это делает то, что вы просите. Взбитый через 3 минуты.

wget -q https://www.privateinternetaccess.com/pages/network/ -O - | grep -E -o '>[^.]+\.privateinternetaccess\.com<' | tr -d '[<>]' | while read host ;do host $host ;done | awk '{print $NF}' | sort -u > ip_list 

Таким образом, мы получаем веб-страницу со всеми именами хостов с помощью wget и выводим их на STDOUT при подавлении отчетов о действиях от wget.

 wget -q https://www.privateinternetaccess.com/pages/network/ -O - 

Мы используем grep для имен хостов на выходе.

 grep -E -o '>[^.]+\.privateinternetaccess\.com<' 

Затем используйте tr для удаления угловых опор из имен хостов.

 tr -d '[<>]' 

Затем мы перебираем имена хостов с помощью цикла while и разрешаем их.

 while read host ;do host $host ;done 

Преимущество использования хоста над проверкой имени заключается в том, что вы получите их все, не получая дубликатов.

Вывод разрешения имени очищается с помощью awk, а затем сортируется однозначно, а не то, что я думаю, что будут дубликаты, и записывать результаты в файл ip_list .

 awk '{print $NF}' | sort -u > ip_list 

Если вам интересно, что делает awk: он печатает последнее поле каждой строки.