to choose the best one of Gcore‘IPs for connection with lowest latency.

Overview

GcoreCDNIPSelector

to choose the best IP from Gcore-CDN to reach the lowest latency and stable connections.

Background

Gcore's CDN provide a smooth experience over the world.

However, network connections from China sometime get shipments-lost and high-latency. As a result, some people would have liked to use low-latency IP addresses to bind Gcore's domain.

So, I wrote a script to choose IPs with the lowest latency to cater for this situation.

How to use?

  1. set up node environment. In case people who haven't set up node. I highly recommand nvm or nvm-windows to set up.

  2. run this JS file.

npm install
node ./main.js
  1. wait minites to get result.txt which contain best IPs will be saved in this folder.

For chosing the best one of them, you may need 站长ping to make sure that connection is stable over China. Otherwise, You you can use your HTTP service to test bandwidth.

In addition

At present, I use https://api.gcorelabs.com/cdn/public-net-list to query IPs. In case it expired, this script will going to be invalid. If you find this script is invalid, please put up an issue or find new url to replace.

Have you tried AWS CDN Cloudfront?

I have written another IP-selector for Cloudfront: https://github.com/BruceWind/CloudFrontIPSelector, you can try it.

You might also like...

"Choose your Pokemon" is a Webpack project meant to fetch data from two different APIs: PokéAPI and Involvement API

"Choose your Pokemon" is a Webpack project meant to fetch data from two different APIs: PokéAPI and Involvement API. Here we display a list of 20 Pokemons for whom one can like, display more info, and comment; all based on the data from these two external resources.

Mar 31, 2022

A component to quickly choose fonts from Google Web Fonts, custom fonts you (the web developer) provide, as well as system fonts.

A component to quickly choose fonts from Google Web Fonts, custom fonts you (the web developer) provide, as well as system fonts.

Fontpicker jQuery Plugin A component to quickly choose fonts from Google Web Fonts, custom fonts you (the web developer) provide, as well as system fo

Dec 3, 2022

Choose your next JavaScript framework based on the features you need.

Astro Starter Kit: Minimal npm init astro -- --template minimal 🧑‍🚀 Seasoned astronaut? Delete this file. Have fun! 🚀 Project Structure Inside of

Nov 19, 2022

Download all Moodle files with one click. This is a Chrome extension built to save time and effort from downloading files manually one by one!

Download all Moodle files with one click. This is a Chrome extension built to save time and effort from downloading files manually one by one!

Moodle Downloader Extension Moodle downloader extension for Chrome. The extension is tested with both the TUM moodle and the official moodle demo. Not

Nov 15, 2022

💻 ssher.vim is interacting remote machines(only linux) through ssh connection

💻 ssher.vim is interacting remote machines(only linux) through ssh connection

Feb 21, 2022

A remake of the famous Google Chrome Dinosaur game that comes-up when we're out of connection.

A remake of the famous Google Chrome Dinosaur game that comes-up when we're out of connection.

Dino Game Preview: Project: This is a remake of the classic "easter egg" T-Rex game that we can play on Google Chrome when we're out of connection. Ho

Nov 9, 2022

A clean-looking, secure, MySQL/MariaDB remote connection terminal made in NodeJS

A clean-looking, secure, MySQL/MariaDB remote connection terminal made in NodeJS

NodeJS MySQL/MariaDB Terminal NodeJS MySQL/MariaDB Terminal is a remote terminal for MySQL/MariaDB databases, which works in the same way as the offic

Jun 24, 2022

An abstraction layer on top of @replit/crosis that makes Repl connection management and operations so easy, a Furret could do it! 🎉

An abstraction layer on top of @replit/crosis that makes Repl connection management and operations so easy, a Furret could do it! 🎉

Crosis4Furrets An abstraction layer on top of @replit/crosis that makes Repl connection management and operations so easy, a Furret could do it! 🎉 In

Dec 29, 2022

💥 The best all-in-one toolbox. Bazinga!

Bazinga Tools The all-in-one toolbox for developers. https://bazinga.tools You Are in Good Company BAZINGA.TOOLS is the best all-in-one toolbox for al

Jan 6, 2023
Comments
Owner
Bruce
A linuxer who lives on Android-dev owns skills: Java, Android SDK/NDK dev, JS, Media Codec, DevOps and a little bit C++.
Bruce
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
An IoT bottle that tracks water consumption. Winner of Best Health Hack, MLH's Best Hardware Hack, and QB3's Best Big Data for the Improvement of Health Care Winner at CruzHacks 2022.

An IoT bottle that tracks water consumption. Winner of Best Health Hack, MLH's Best Hardware Hack, and QB3's Best Big Data for the Improvement of Health Care Winner at CruzHacks 2022.

Nathanael Garza 2 Jan 21, 2022
The Happy Devs Leaderboard allows users to submit their scores. The app then ranks them from highest scores to the lowest.

HAPPY DEVS LEADERBOARD The HAPPY DEVS LEADERBOARD app allows users to submit their scores to be ranked on the Leaderboard. Live Demo Live Demo Link Bu

Benjamin Semah 3 Feb 10, 2022
Jonathan Parker 6 Nov 23, 2022
NestJS implementation of client and strategy hasn't enough features for work with RabbitMQ so i developed this one (basically, just a wrapper for amqp-connection-manager)

NestJS RabbitMQ Client and strategy NestJS implementation of client and strategy hasn't enough features for work with RabbitMQ so i developed this one

ilink 5 Sep 6, 2022
Automaticly parses known pocket ips patch resources, scans folders or zip files for matching roms and applies the patches.

Pocket Automaton Automaticly parses known pocket ips patch resources, scans folders or zip files for matching roms and applies the patches. Usage pock

null 3 Nov 27, 2022
Simple rate-limiter NPM Module used for blocking IPs that exceeds certain number of requests per second in a specific time frame.

API Rate Limiter Zero-Dependencies Simple rate-limiter NPM Module used for blocking IPs that exceeds certain number of requests per second in a specif

Khaldon 7 Oct 7, 2022
Tired of boring balena device names? Why not let us choose!

name-block A balenaBlock for fun device renaming Highlights Bored of your device names?: Let this block rename them for you! Loads of categories: From

Alex Bucknall 3 Dec 20, 2021
👨🏼‍🎨 It is a virtual blackboard, where you can make 🖌 drawings through 🖱 the mouse. You have the option to choose 🎨 colors and line thickness.

????‍?? Lets Draw ?? ÍNDICE 1. Lets-Draw 2. Realization of the Project 3. Technologies used 4. Authors 1. Lets-Draw ????‍?? It is a virtual blackboard

Rosamaria Rodriguez 2 Mar 7, 2022