-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Choose between IPv4 and IPv6 #393
Comments
Hi, This means that IPv4 connectivity will still be used and must not be blocked. |
@stenya I was specifically asking about the IP address that websites see, not about disabling IPv4/6 completely. Is this possible? |
Please clarify: Currently, it is possible to use "IPv4-only" and "IPv4+IPv6" modes. |
Yes, I mean that all VPN traffic would only use IPv6. So if I go to any website, it would see my IPv6 address, always. |
That's an inaccurate perception. |
@stenya according to the faq you on the websites you guys switch ip addresses sometimes, but its been almost a couple weeks of me not being able to access github on most of the ivpn locations, and been months of me not being able to access icloud login form either idmsa.apple.com, and web archive org neither (many more including yahoo but doesnt matter), do you guys actually pull new ip addresses or not? being able to switch to ipv6 couldve resolved this issue. |
@quite as well. |
For now, this functionality is not a priority, but we will consider it in the future. |
Results
#!/bin/bash
declare -A servers
declare -A server_ping
declare -A wget_exit_codes=(
[0]="Success"
[1]="Generic error"
[2]="Parse error"
[3]="File I/O error"
[4]="Network failure"
[5]="SSL verification failure"
[6]="DNS lookup failure"
[7]="Redirect loop detected"
[8]="Server issued an error response"
[9]="FTP-related error"
[10]="No matching proxy found"
[11]="Authentication failed"
[20]="HTTP request writing error"
[21]="Timeout reached"
[22]="HTTP response error"
[23]="Permission denied"
[24]="Disk full"
[25]="SSL certificate error or unsupported feature"
)
server_info_file="servers_info.txt";
output_file="ping_info.txt";
skip_servers=("" "");
start_server="";
start_processing=false;
if [[ -z "$start_server" ]]; then start_processing=true; fi;
ivpn disconnect
if [[ -f "$server_info_file" ]]; then
echo "Reading servers info from file: $server_info_file";
servers_info=$(cat "$server_info_file");
else
echo "Fetching servers info and saving to file: $server_info_file"
servers_info=$(ivpn servers -ping | awk -F'|' 'NR > 2 { gsub(/^[ \t]+|[ \t]+$/, "", $1); gsub(/^[ \t]+|[ \t]+$/, "", $2); gsub(/^[ \t]+|[ \t]+$/, "", $7); if (($1 == "OpenVPN" || $1 == "WireGuard") && $7 != "?") print $2, $1, $7 }');
echo "$servers_info" > "$server_info_file";
fi;
while read -r server protocol ping; do servers["$server"]="$protocol"; server_ping["$server"]="$ping"; done <<< "$servers_info";
for server in "${!servers[@]}"; do
if [[ "$start_processing" == false ]]; then if [[ "$server" == "$start_server" ]]; then echo "Starting processing from server: $server"; start_processing=true; else echo "Skipping server: $server"; continue; fi; fi;
if [[ " ${skip_servers[*]} " == *" $server "* ]]; then echo "Skipping blacklisted server: $server"; continue; fi;
protocol="${servers[$server]}";
ping="${server_ping[$server]}"
if [[ "$protocol" == "OpenVPN" ]]; then
echo "Connecting to OpenVPN server: $server"
timeout 15 ivpn connect -obfsproxy obfs4_iat_paranoid "$server"
elif [[ "$protocol" == "WireGuard" ]]; then
echo "Connecting to WireGuard server: $server"
timeout 15 ivpn connect -v2ray quic -port "UDP:2049" "$server"
fi
if [ $? -ne 0 ]; then echo "Connection to $server timed out or failed. Skipping."; continue; else echo "success"; fi;
results="";
for target in github.com web.archive.org idmsa.apple.com; do
if ping -c 2 -W 1 "$target" > /dev/null 2>&1; then results+="$target s (ping) | "; else results+="$target f (ping) | "; fi;
done;
# results="${results%"${results##*[![:space:]]}"}";
for target in idmsa.apple.com web.archive.org; do
if wget --spider --timeout=2 --tries=1 "$target" > /dev/null 2>&1; then results+="$target s | ";
else
exit_code=$?; description=${wget_exit_codes[$exit_code]:-"Unknown error"};
case $exit_code in
8) results+="$target s (ec: $exit_code) | "; ;;
4|5|6|7) results+="$target f (ec: $exit_code) | "; ;;
*) results+="$target f (Exit Code: $exit_code, $description) | "; ;;
esac;
fi;
done;
results="${results%"${results##*[![:space:]]}"}";
echo "$server [$ping | $protocol] $results" >> "$output_file";
done;
check the availability in the attached list, most of the vpn locations fail to create a ssl handshakes ( |
also can you add an additional server for helsinki? it gets overloaded too quick, despite having low latency it barely can load pages lol (openvpn), same with norway (openvpn), same for austria etc with obf modes on, while quic works fine |
ill update results later |
Hello IVPN team,
Please let us choose between IPv4 and IPv6 when enabled, so that if one IP is blocked, the other can be used.
Thanks.
The text was updated successfully, but these errors were encountered: