Existe uma maneira de resolver TODOS os IPs VPN da PIA com um script?

2

Estou procurando uma maneira de obter uma lista completa de todos os endereços IP atuais dos servidores do PrivateInternetAccess. Eu preciso da lista completa para que eu possa inseri-los manualmente em um killswitch para o OpenVPN. Estou usando o Adrelanos VPN Firewall para um killswitch, conforme descrito aqui:

VPN (OpenVPN) Firewall Killswitch para usuários Linux

Vi nos fóruns da PIA que alguém havia pedido uma lista aqui: Lista de servidores IPs
mas como os serviços começaram a bloquear os IPs, a única maneira de obtê-los é através dos nomes de host. Isso seria extremamente demorado para eu fazer.

Eu quero saber se há, talvez, um script simples que pode pingar os servidores o suficiente para classificar os IPs e organizá-los. Qualquer outro método seria fantástico também. Seria fácil se cada nome de host tivesse apenas um servidor e um IP, mas a partir de agora, apenas o nome de host da Holanda teria 278 servidores. Eu não posso gastar meu tempo pingando o servidor uma e outra vez, cruzar IPs redundantes, então contar para ter certeza de que eu tenho todos os 278. Eu também não quero apenas os endereços IP da Holanda. Eu preferiria um método tão simples quanto inserir os nomes de host e obter resultados. Qualquer conselho seria ótimo. Obrigado!

    
por Jsmith93 11.03.2016 / 21:39

1 resposta

2

Acho que isso faz o que você está pedindo. Chicoteado em 3 minutos.

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

Assim, buscamos a página da Web com todos os nomes de host com wget e a enviamos para STDOUT, ao mesmo tempo em que suprimimos os relatórios de atividades do wget.

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

Nós fazemos grep para os nomes de host na saída.

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

Em seguida, use tr para remover os anseios angulares dos nomes de host.

tr -d '[<>]'

Em seguida, fazemos um loop pelos nomes de host com um laço while enquanto os resolvemos.

while read host ;do host $host ;done

A vantagem de usar o host ao pingar o nome é que você obterá todos eles, sem obter duplicatas.

A saída da resolução de nomes é limpa com o awk e, em seguida, classificada de forma única, não que eu ache que haveria duplicatas e gravar os resultados no arquivo ip_list .

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

Caso você queira saber o que o awk faz: ele imprime o último campo de cada linha.

    
por 11.03.2016 / 22:11