wireguard-config-benchmark is a python script that benchmarks the download speeds for the connections defined in one or more wireguard config files

Overview

Setup

  1. Install Wireguard, along with any additional dependencies
  2. Install Puthon 3.x
  3. Run the following command to install all python package script dependencies
    pip install -r requirements.txt
  4. Generate wireguard config files from your VPN provider

How to run the benchmark script

  1. Open benchmark_wireguard_vpn_servers.py and edit the VPN_CONFIG_DIR variable defined at the top to point to the directory containing all wireguard config files.

  2. Run the script:

    • Windows note: admin privelages are required in order to make calls to the wireguard client from within the script
      python benchmark_wireguard_vpn_servers.py

    The script will pipe all stdout output to a file named benchmark_stdout.txt

    When the script has finished benchmarking all wireguard configs, it will write the results to a file named benchmark_results.json. This file will be sorted by download speed in descending order and will include information about each config tested (config name, server information, and speedtest information).

Example benchmark_results.json output file

", "ip": " ", "city": " ", "region": " ", "country": " ", "coordinate": [ -123.45, 67.890 ], "speedtest_results": [ { "server_name": "Speedtest Server 1 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]", "server_id": "12345", "upload_speed": 0.0, "download_speed": 500.00, "ping": 10.000 }, { "server_name": "Speedtest Server 2 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]", "server_id": "12346", "upload_speed": 0.0, "download_speed": 400.00, "ping": 10.000 }, { "server_name": "Speedtest Server 3 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]", "server_id": "12347", "upload_speed": 0.0, "download_speed": 300.00, "ping": 10.000 }, { "server_name": "Speedtest Server 4 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]", "server_id": "12348", "upload_speed": 0.0, "download_speed": 200.00, "ping": 10.000 }, { "server_name": "Speedtest Server 5 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]", "server_id": "12349", "upload_speed": 0.0, "download_speed": 100.00, "ping": 10.000 } ] }, { "name": " ", "ip": " ", "city": " ", "region": " ", "country": " ", "coordinate": [ -123.45, 67.890 ], "speedtest_results": [ { "server_name": "Speedtest Server 1 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]", "server_id": "12345", "upload_speed": 0.0, "download_speed": 125.00, "ping": 10.000 }, { "server_name": "Speedtest Server 2 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]", "server_id": "12346", "upload_speed": 0.0, "download_speed": 120.00, "ping": 10.000 }, { "server_name": "Speedtest Server 3 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]", "server_id": "12347", "upload_speed": 0.0, "download_speed": 115.00, "ping": 10.000 }, { "server_name": "Speedtest Server 4 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]", "server_id": "12348", "upload_speed": 0.0, "download_speed": 110.00, "ping": 10.000 }, { "server_name": "Speedtest Server 5 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]", "server_id": "12349", "upload_speed": 0.0, "download_speed": 105.00, "ping": 10.000 } ] } ] ">
[
    {
        "name": "
            
             "
            ,
        "ip": "
            
             "
            ,
        "city": "
            
             "
            ,
        "region": "
            
             "
            ,
        "country": "
            
             "
            ,
        "coordinate": [
            -123.45,
            67.890
        ],
        "speedtest_results": [
            {
                "server_name": "Speedtest Server 1 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]",
                "server_id": "12345",
                "upload_speed": 0.0,
                "download_speed": 500.00,
                "ping": 10.000
            },
            {
                "server_name": "Speedtest Server 2 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]",
                "server_id": "12346",
                "upload_speed": 0.0,
                "download_speed": 400.00,
                "ping": 10.000
            },
            {
                "server_name": "Speedtest Server 3 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]",
                "server_id": "12347",
                "upload_speed": 0.0,
                "download_speed": 300.00,
                "ping": 10.000
            },
            {
                "server_name": "Speedtest Server 4 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]",
                "server_id": "12348",
                "upload_speed": 0.0,
                "download_speed": 200.00,
                "ping": 10.000
            },
            {
                "server_name": "Speedtest Server 5 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]",
                "server_id": "12349",
                "upload_speed": 0.0,
                "download_speed": 100.00,
                "ping": 10.000
            }
        ]
    },
    {
        "name": "
            
             "
            ,
        "ip": "
            
             "
            ,
        "city": "
            
             "
            ,
        "region": "
            
             "
            ,
        "country": "
            
             "
            ,
        "coordinate": [
            -123.45,
            67.890
        ],
        "speedtest_results": [
            {
                "server_name": "Speedtest Server 1 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]",
                "server_id": "12345",
                "upload_speed": 0.0,
                "download_speed": 125.00,
                "ping": 10.000
            },
            {
                "server_name": "Speedtest Server 2 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]",
                "server_id": "12346",
                "upload_speed": 0.0,
                "download_speed": 120.00,
                "ping": 10.000
            },
            {
                "server_name": "Speedtest Server 3 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]",
                "server_id": "12347",
                "upload_speed": 0.0,
                "download_speed": 115.00,
                "ping": 10.000
            },
            {
                "server_name": "Speedtest Server 4 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]",
                "server_id": "12348",
                "upload_speed": 0.0,
                "download_speed": 110.00,
                "ping": 10.000
            },
            {
                "server_name": "Speedtest Server 5 Name (Speedtest Server City, State/Region, Country) [Distance from VPN server]",
                "server_id": "12349",
                "upload_speed": 0.0,
                "download_speed": 105.00,
                "ping": 10.000
            }
        ]
    }
]
Python implementation of the Session open group server

API Documentation CLI Reference Want to build from source? See BUILDING.md. Want to deploy using Docker? See DOCKER.md. Installation Instructions Vide

Oxen 36 Jan 02, 2023
mitm6 is a pentesting tool that exploits the default configuration of Windows to take over the default DNS server.

mitm6 is a pentesting tool that exploits the default configuration of Windows to take over the default DNS server.

Fox-IT 1.3k Jan 05, 2023
RollerScanner — Fast Port Scanner Written On Python

RollerScanner RollerScanner — Fast Port Scanner Written On Python Installation You should clone this repository using: git clone https://github.com/Ma

68 Nov 09, 2022
Ctech Didik Auto Script VPN 👨🏻‍💻Youtube: Ctech Didik

CTech Didik Auto Script VPN SUPPORT OPERATING SYSTEM Debian GNU/Linux 11 (Bullseye) Debian GNU/Linux 10 (Buster) Debian GNU/Linux 9 (Stretch) Ubuntu S

Ctech Didik 27 Dec 20, 2022
This is a Client-Server-System which can share the screen from the server to client and in the other direction.

Screenshare-Streaming-Python This is a Client-Server-System which can share the screen from the server to client and in the other direction. You have

VFX / Videoeffects Creator 1 Nov 19, 2021
Port Traffic/Bandwidth Monitor Script

python-switch-port-traffic-alarm Port Traffic/Bandwidth Monitor Script That's an Switch Port Traffic monitor program is checking the switch uplink por

goksinenki 4 Sep 02, 2021
Desktop application for checking sites connection in a background mode

Site connectivity checker Desktop application for checking site connection in a background mode by sending ICMP messages. Problem and solution Usually

Karina Singatullina 26 Dec 19, 2022
NanoChat - nano chat server and client

NanoChat This is a work in progress! NanoChat is an application for connecting with your friends using Python that uses ONLY default Python libraries.

Miss Bliss 1 Nov 13, 2021
An advanced real time threat intelligence framework to identify threats and malicious web traffic on the basis of IP reputation and historical data.

ARTIF is a new advanced real time threat intelligence framework built that adds another abstraction layer on the top of MISP to identify threats and malicious web traffic on the basis of IP reputatio

CRED 225 Dec 31, 2022
QUIC and HTTP/3 implementation in Python

aioquic What is aioquic? aioquic is a library for the QUIC network protocol in Python. It features a minimal TLS 1.3 implementation, a QUIC stack and

1.2k Dec 29, 2022
snappi-trex is a snappi plugin that allows executing scripts written using snappi with Cisco's TRex Traffic Generator

snappi-trex snappi-trex is a snappi plugin that allows executing scripts written using snappi with Cisco's TRex Traffic Generator Design snappi-trex c

Open Traffic Generator 14 Sep 07, 2022
This application aims to read all wifi passwords and visualizes the complexity in graph formation by taking into account several criteria and help you generate new random passwords.

This application aims to read all wifi passwords and visualizes the complexity in graph formation by taking into account several criteria and help you generate new random passwords.

Njomza Rexhepi 0 May 29, 2022
This tool extracts Credit card numbers, NTLM(DCE-RPC, HTTP, SQL, LDAP, etc), Kerberos (AS-REQ Pre-Auth etype 23), HTTP Basic, SNMP, POP, SMTP, FTP, IMAP, etc from a pcap file or from a live interface.

This tool extracts Credit card numbers, NTLM(DCE-RPC, HTTP, SQL, LDAP, etc), Kerberos (AS-REQ Pre-Auth etype 23), HTTP Basic, SNMP, POP, SMTP, FTP, IMAP, etc from a pcap file or from a live interface

1.6k Jan 01, 2023
Network-Shredder is a python based NIDS.

Network-Shredder is a python based NIDS.

Oussama RAHALI 9 Dec 13, 2022
Share clipboards between two devices in a network

Shared Clipboard I felt the need for sharing clipboard texts between virtual machines but I didn't find any reliable solutions for this (I use HyperV)

Teja Swaroop 9 Jun 10, 2022
IP-Escaner - A Python Tool to obtain information from an IP address

IP-Escaner Herramienta para obtener informacion de una direccion IP Opciones de

4 Apr 09, 2022
This program ingests a Cisco "sh ip arp" as a text file and produces the list of vendors seen in the file

IP-ARP-Vendor_lookup This program ingests a Cisco "sh ip arp" as a text file and produces the list of vendors seen in the file Why? Answers the questi

Stew Alexander 1 Dec 24, 2022
🌐 Tools for Networking

🌐 Network Tools Tools for Networking This repository contains the tools needed to make networking easier. Make sure to download all of the requiremen

Tornaido 1 Jan 15, 2022
Ping Verification Python Script

Python Script Port Scanner Script WHAT IS IT? Port scanner script using Python. HOW IT WORKS Once the script has been executed, it will request the ta

AC 0 Dec 12, 2021
ANalyse is a vehicle network analysis and attack tool.

CANalyse is a tool built to analyze the log files to find out unique datasets automatically and able to connect to simple user interfaces suc

0xh3nry 87 Dec 18, 2022