모든 PIA VPN IP를 스크립트로 구문 분석하는 방법이 있나요?

모든 PIA VPN IP를 스크립트로 구문 분석하는 방법이 있나요?

PrivateInternetAccess 서버에 대한 모든 현재 IP 주소의 전체 목록을 얻는 방법을 찾고 있습니다. OpenVPN의 킬 스위치에 수동으로 입력하려면 전체 목록이 필요합니다. 저는 아래 설명된 대로 Adrelanos VPN 방화벽을 킬 스위치로 사용합니다.

Linux 사용자를 위한 VPN(OpenVPN) 방화벽 킬스위치

PIA 포럼에서 다음 목록을 요청하는 사람을 봤습니다.서버 IP 목록
그러나 서비스가 IP를 차단하기 시작했기 때문에 IP를 얻을 수 있는 유일한 방법은 호스트 이름을 통해서입니다. 이것은 나에게 매우 시간이 많이 걸리는 일이다.

IP를 정렬하고 정리하기에 충분한 시간 동안 서버에 ping을 보낼 수 있는 간단한 스크립트가 있는지 궁금합니다. 다른 방법도 좋을 것입니다. 호스트 이름당 하나의 서버와 IP만 있으면 쉬울 텐데, 현재 네덜란드 호스트 이름에만 278개의 서버가 있습니다. 서버를 계속해서 핑하고, 추가 IP를 삭제하고, 278개의 IP 주소가 모두 있는지 확인하는 데 시간을 보낼 수 없습니다. 나는 네덜란드 IP 주소만을 원하지 않습니다. 나는 호스트 이름을 입력하고 결과를 얻는 것처럼 간단한 방법을 선호합니다. 어떤 제안이라도 좋을 것입니다. 감사해요!

답변1

나는 이것이 귀하의 요구 사항을 충족한다고 생각합니다. 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 -E -o '>[^.]+\.privateinternetaccess\.com<'

그런 다음 tr을 사용하여 호스트 이름에서 각도 지원을 제거합니다.

tr -d '[<>]'

그런 다음 bash while 루프를 사용하여 호스트 이름을 반복하고 구문 분석합니다.

while read host ;do host $host ;done

이름을 핑하는 것에 비해 호스트를 사용하면 중복 없이 모든 이름을 얻을 수 있다는 장점이 있습니다.

이름 확인의 출력은 awk로 정리된 다음 중복이 있을 것이라고 생각하지 않고 고유하게 정렬되고 결과가 파일에 기록됩니다.IP_목록.

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

awk가 무엇을 하는지 궁금하다면: 각 줄의 마지막 필드를 인쇄합니다.

답변2

이 Bash 스크립트를 사용해 볼 수 있습니다 가장 빠른 PIA 서버를 선택하세요

netselect 프로그램이 필요합니다.

선택한 국가에서 가장 빠른 서버를 선택합니다.

그런 다음 해당 서버에 대해 가장 빠른 IP 주소를 선택하십시오.

답변3

확실히 가능합니다. 나는 (PHP를 사용하여) 그것을했고 모든 서버를 게시했습니다https://github.com/Lars-/PIA-servers. DNS는 매초마다 순환되지 않기 때문에 시간이 좀 걸리지만 작동합니다.

관련 정보