Repository files navigation

Globalping icon Globalping CLI

Access a global network of probes without leaving your console. Benchmark your internet infrastructure, automate uptime and latency monitoring with scripts, or optimize your anycast network – from any location and free of charge. Powered by the Globalping community!

Key features

  • The official command-line interface for the Globalping network
  • Run networking commands from any location in the world
  • Real-time results for all supported commands: ping, mtr, traceroute, DNS resolve, HTTP
  • Includes detailed timings and latency metrics for every test
  • Human-friendly format and output
  • Supports Linux, MacOS, and Windows
  • Auto-updated via all automated installation methods
  • Explore additional Globalping integrations, including our online tools, Slack app, and more

Installation

Install the repository and Globalping CLI using the relevant package manager command from below. This way, you can get future updates by simply running an update with your package manager.

Ubuntu/Debian (deb)

curl -s https://packagecloud.io/install/repositories/jsdelivr/globalping/script.deb.sh | sudo bash
apt install globalping

CentOS/Fedora/Rocky Linux/AlmaLinux (rpm)

curl -s https://packagecloud.io/install/repositories/jsdelivr/globalping/script.rpm.sh | sudo bash
dnf install globalping

Manual installation instructions

MacOS - Homebrew

brew tap jsdelivr/globalping
brew install globalping

Windows - Chocolatey

choco install globalping

Windows - WinGet

winget install globalping

Binary installation

Every new release is compiled into binaries ready to run on most operating systems and provided as assets on GitHub. You can download and execute these binaries directly on your system.

Important

Opting for this installation method means you'll have to repeat this manual process to update the CLI to a newer release!

Explore the available versions.

Updating

If you've installed the Globalping CLI via a package manager, you only need to run the manager's update command to get the latest Globalping CLI version.

Getting started with Globalping CLI

After installing, verify the Globalping CLI is working by running:

globalping --help

The result shows how to use the CLI and which commands and flags are available:

Usage:
globalping [command]
Measurement Commands:
dns Resolve DNS records, similar to the dig command
http Perform a HEAD or GET request to a host
mtr Run a MTR test, which combines traceroute and ping
ping Perform a ping test
traceroute Run a traceroute test
Additional Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
history Display the measurement history of your current session
install-probe Join the Globalping network by running a probe
version Display the version of your installed Globalping CLI
Flags:
-C, --ci disable real-time terminal updates and colors, suitable for CI and
scripting (default false)
-F, --from string specify the probe locations as a comma-separated list; you may use:
- names of continents, regions, countries, US states, cities, or
networks
- [@1 | first, @2 ... @-2, @-1 | last | previous] to run with the probes
from previous measurements in this session
- an ID of a previous measurement to run with its probes
(default "world")
-h, --help help for globalping
-4, --ipv4 resolve names to IPv4 addresses
-6, --ipv6 resolve names to IPv6 addresses
-J, --json output results in JSON format (default false)
--latency output only the latency stats; applicable only to dns, http, and ping
commands (default false)
-L, --limit int define the number of probes to use (default 1)
--share print a link at the end of the results to visualize them online (default
false)
Use "globalping [command] --help" for more information about a command.

Run your first tests

Globalping relies on a community-hosted probe network, enabling you to run network tests from any location with an active probe. The following examples show you through some tests, exploring how to define locations, set limits, and use some command flags.

Filter locations

For example, if you want to run ping from a probe in Seattle that is also part of the Comcast network, run the following:

globalping ping google.com from Comcast+Seattle
> Seattle (WA), US, NA, Comcast Cable Communications, LLC (AS33650)
PING (142.250.217.78) 56(84) bytes of data.
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=1 ttl=58 time=14.0 ms
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=2 ttl=58 time=14.5 ms
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=3 ttl=58 time=15.9 ms
--- ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 402ms
rtt min/avg/max/mdev = 13.985/14.779/15.886/0.807 ms

You can use the + symbol as a filter to select the desired location of the probes more precisely.

Tip

You can mix and match any location type, including countries, continents, cities, US states, regions, ASNs, ISP names, eyeball or data center tags, and cloud region names.

Define multiple locations and basic flags

With the following command, we execute four ping commands at four different locations and obtain the summarized latency metrics for each test as a result:

globalping ping google.com from Amazon,Germany,USA,Dallas --limit 4 --latency
> Seoul, KR, AS, Amazon.com, Inc. (AS16509) (aws-ap-northeast-2)
Min: 33.163 ms
Max: 33.256 ms
Avg: 33.22 ms
> Frankfurt, DE, EU, DE, OVH SAS (AS16276)
Min: 1.221 ms
Max: 1.291 ms
Avg: 1.264 ms
> Chicago (IL), US, NA, Cogent Communications (AS174)
Min: 112.405 ms
Max: 112.686 ms
Avg: 112.528 ms
> Dallas (TX), US, NA, Catalyst Host LLC (AS393336)
Min: 1.579 ms
Max: 1.588 ms
Avg: 1.584 ms

You can select multiple locations for running a command by using a comma , as a delimiter. When doing so, make sure to also specify the number of tests to run with the --limit flag. For example, to run ping from four different locations (as we did in the example above), add --limit 4 to make sure you get one test result per location. Otherwise, the default limit of 1 will be selected, resulting in a random result from one of the four locations.

Finally, you can use the --latency parameter to only get the summarized latency data instead of the full raw output.

Tip

We recommend reading our tips and best practices to learn more about defining locations effectively!

Share results online

Include a link at the bottom of your results using the --share flag to view and share the test results online.

Important

Shareable links and the respective saved measurement results expire after a few weeks, depending on the user type. GitHub Sponsors, for example, enjoy extended result storage.

 globalping dns google.com from gcp-asia-south1 --share
> Mumbai, IN, AS, Google LLC (AS396982) (gcp-asia-south1)
;<<>> DiG 9.16.37-Debian <<>> -t A google.com -p 53 -4 +timeout=3 +tries=2 +nocookie +nsid;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23733;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;google.com. IN A;; ANSWER SECTION:google.com. 300 IN A 142.250.183.206;; Query time: 3 msec;; SERVER: x.x.x.x#53(x.x.x.x);; WHEN: Mon Jul 10 10:38:00 UTC 2023;; MSG SIZE rcvd: 55> View the results online: https://www.jsdelivr.com/globalping?measurement=xrfXUEAOGfzwfHFz

Reselect probes

You can select the same probes used in a previous measurement by passing the measurement ID to the --from flag.

globalping dns google.com from rvasVvKnj48cxNjC
> Mumbai, IN, AS, Google LLC (AS396982) (gcp-asia-south1)
;<<>> DiG 9.16.42-Debian <<>> -t A google.com -p 53 -4 +timeout=3 +tries=2 +nocookie +nosplit +nsid;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42607;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;google.com. IN A;; ANSWER SECTION:google.com. 300 IN A 142.250.199.174;; Query time: 5 msec;; SERVER: x.x.x.x#53(x.x.x.x);; WHEN: Mon Dec 18 10:01:00 UTC 2023;; MSG SIZE rcvd: 55

Reselect probes from measurements in the current session

Use [@1 | first, @2 ... @-2, @-1 | last | previous] to select the probes from previous measurements in the current session.

globalping ping google.com from USA --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from Germany --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from previous --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from @-1 --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from @-2 --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from first --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from @1 --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms

Continuous non-stop measurements

Important

Currently this feature is limited to the ping command

You can use the --infinite flag to continuously ping a host, just like on Linux or MacOS. Note that while it looks like a single measurement, in actuality its multiple measurements from the same probes combined into a single output. This means that eventually you will run out of credits and the test will stop.

globalping ping cdn.jsdelivr.net from Europe --infinite
> London, GB, EU, Psychz Networks (AS40676)
PING cdn.jsdelivr.net (151.101.1.229) 56(84) bytes of data.
64 bytes from 151.101.1.229 (151.101.1.229): icmp_seq=1 ttl=59 time=0.54 ms
64 bytes from 151.101.1.229 (151.101.1.229): icmp_seq=2 ttl=59 time=0.42 ms
^C

If you select multiple probes when using --infinite the output will change to a summary comparison table.

globalping ping cdn.jsdelivr.net from Europe --limit 5 --infinite
Location | Sent | Loss | Last | Min | Avg | Max
London, GB, EU, OVH SAS (AS16276) | 22 | 0.00% | 3.33 ms | 3.07 ms | 3.20 ms | 3.33 ms
Falkenstein, DE, EU, Hetzner Online GmbH (AS24940) | 22 | 0.00% | 5.41 ms | 5.30 ms | 5.78 ms | 13.1 ms
Vienna, AT, EU, EDIS GmbH (AS57169) | 22 | 0.00% | 0.47 ms | 0.46 ms | 0.56 ms | 0.88 ms
Stockholm, SE, EU, The Constant Company, LLC (AS20473) | 22 | 0.00% | 1.03 ms | 0.83 ms | 1.15 ms | 4.66 ms
Madrid, ES, EU, EDGOO NETWORKS LLC (AS47787) | 22 | 0.00% | 0.24 ms | 0.13 ms | 0.26 ms | 0.42 ms
^C

History

You can view the history of your measurements by running the history command.

globalping history
1 | 2024-03-27 11:56:46 | ping google.com
> https://www.jsdelivr.com/globalping?measurement=itcR65tYCqbouXib
- | 2024-03-27 11:57:01 | dns google.com from last
> https://www.jsdelivr.com/globalping?measurement=kWc5UBK9A6G4RUYM
2 | 2024-03-27 11:57:20 | traceroute google.com from New York --limit 2
> https://www.jsdelivr.com/globalping?measurement=Yz7A1UifUonZsC3C
3 | 2024-03-27 11:57:37 | mtr google.com from New York --limit 2
> https://www.jsdelivr.com/globalping?measurement=SX1NBgfDKiabM1vZ
4 | 2024-03-27 11:57:52 | http google.com from London,Belgium --limit 2 --method get --ci
> https://www.jsdelivr.com/globalping?measurement=eclwFSYX0zgU10Cs

Learn about available flags

Most commands have shared and unique flags. We recommend that you familiarize yourself with these so that you can run and automate your network tests in powerful ways.

Simply execute the command you want to learn more about with the --help flag:

globalping [command] --help

Support and Feedback

If you are stuck or want to give us your feedback, please open a new issue.

Development

Please refer to CONTRIBUTING.md for more information.

About

A simple CLI tool to run networking commands remotely from hundreds of globally distributed servers

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Globalping icon Globalping CLI

Access a global network of probes without leaving your console. Benchmark your internet infrastructure, automate uptime and latency monitoring with scripts, or optimize your anycast network – from any location and free of charge. Powered by the Globalping community!

Key features

  • The official command-line interface for the Globalping network
  • Run networking commands from any location in the world
  • Real-time results for all supported commands: ping, mtr, traceroute, DNS resolve, HTTP
  • Includes detailed timings and latency metrics for every test
  • Human-friendly format and output
  • Supports Linux, MacOS, and Windows
  • Auto-updated via all automated installation methods
  • Explore additional Globalping integrations, including our online tools, Slack app, and more

Installation

Install the repository and Globalping CLI using the relevant package manager command from below. This way, you can get future updates by simply running an update with your package manager.

Ubuntu/Debian (deb)

curl -s https://packagecloud.io/install/repositories/jsdelivr/globalping/script.deb.sh | sudo bash
apt install globalping

CentOS/Fedora/Rocky Linux/AlmaLinux (rpm)

curl -s https://packagecloud.io/install/repositories/jsdelivr/globalping/script.rpm.sh | sudo bash
dnf install globalping

Manual installation instructions

MacOS - Homebrew

brew tap jsdelivr/globalping
brew install globalping

Windows - Chocolatey

choco install globalping

Windows - WinGet

winget install globalping

Binary installation

Every new release is compiled into binaries ready to run on most operating systems and provided as assets on GitHub. You can download and execute these binaries directly on your system.

Important

Opting for this installation method means you'll have to repeat this manual process to update the CLI to a newer release!

Explore the available versions.

Updating

If you've installed the Globalping CLI via a package manager, you only need to run the manager's update command to get the latest Globalping CLI version.

Getting started with Globalping CLI

After installing, verify the Globalping CLI is working by running:

globalping --help

The result shows how to use the CLI and which commands and flags are available:

Usage:
globalping [command]
Measurement Commands:
dns Resolve DNS records, similar to the dig command
http Perform a HEAD or GET request to a host
mtr Run a MTR test, which combines traceroute and ping
ping Perform a ping test
traceroute Run a traceroute test
Additional Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
history Display the measurement history of your current session
install-probe Join the Globalping network by running a probe
version Display the version of your installed Globalping CLI
Flags:
-C, --ci disable real-time terminal updates and colors, suitable for CI and
scripting (default false)
-F, --from string specify the probe locations as a comma-separated list; you may use:
- names of continents, regions, countries, US states, cities, or
networks
- [@1 | first, @2 ... @-2, @-1 | last | previous] to run with the probes
from previous measurements in this session
- an ID of a previous measurement to run with its probes
(default "world")
-h, --help help for globalping
-4, --ipv4 resolve names to IPv4 addresses
-6, --ipv6 resolve names to IPv6 addresses
-J, --json output results in JSON format (default false)
--latency output only the latency stats; applicable only to dns, http, and ping
commands (default false)
-L, --limit int define the number of probes to use (default 1)
--share print a link at the end of the results to visualize them online (default
false)
Use "globalping [command] --help" for more information about a command.

Run your first tests

Globalping relies on a community-hosted probe network, enabling you to run network tests from any location with an active probe. The following examples show you through some tests, exploring how to define locations, set limits, and use some command flags.

Filter locations

For example, if you want to run ping from a probe in Seattle that is also part of the Comcast network, run the following:

globalping ping google.com from Comcast+Seattle
> Seattle (WA), US, NA, Comcast Cable Communications, LLC (AS33650)
PING (142.250.217.78) 56(84) bytes of data.
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=1 ttl=58 time=14.0 ms
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=2 ttl=58 time=14.5 ms
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=3 ttl=58 time=15.9 ms
--- ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 402ms
rtt min/avg/max/mdev = 13.985/14.779/15.886/0.807 ms

You can use the + symbol as a filter to select the desired location of the probes more precisely.

Tip

You can mix and match any location type, including countries, continents, cities, US states, regions, ASNs, ISP names, eyeball or data center tags, and cloud region names.

Define multiple locations and basic flags

With the following command, we execute four ping commands at four different locations and obtain the summarized latency metrics for each test as a result:

globalping ping google.com from Amazon,Germany,USA,Dallas --limit 4 --latency
> Seoul, KR, AS, Amazon.com, Inc. (AS16509) (aws-ap-northeast-2)
Min: 33.163 ms
Max: 33.256 ms
Avg: 33.22 ms
> Frankfurt, DE, EU, DE, OVH SAS (AS16276)
Min: 1.221 ms
Max: 1.291 ms
Avg: 1.264 ms
> Chicago (IL), US, NA, Cogent Communications (AS174)
Min: 112.405 ms
Max: 112.686 ms
Avg: 112.528 ms
> Dallas (TX), US, NA, Catalyst Host LLC (AS393336)
Min: 1.579 ms
Max: 1.588 ms
Avg: 1.584 ms

You can select multiple locations for running a command by using a comma , as a delimiter. When doing so, make sure to also specify the number of tests to run with the --limit flag. For example, to run ping from four different locations (as we did in the example above), add --limit 4 to make sure you get one test result per location. Otherwise, the default limit of 1 will be selected, resulting in a random result from one of the four locations.

Finally, you can use the --latency parameter to only get the summarized latency data instead of the full raw output.

Tip

We recommend reading our tips and best practices to learn more about defining locations effectively!

Share results online

Include a link at the bottom of your results using the --share flag to view and share the test results online.

Important

Shareable links and the respective saved measurement results expire after a few weeks, depending on the user type. GitHub Sponsors, for example, enjoy extended result storage.

 globalping dns google.com from gcp-asia-south1 --share
> Mumbai, IN, AS, Google LLC (AS396982) (gcp-asia-south1)
;<<>> DiG 9.16.37-Debian <<>> -t A google.com -p 53 -4 +timeout=3 +tries=2 +nocookie +nsid;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23733;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;google.com. IN A;; ANSWER SECTION:google.com. 300 IN A 142.250.183.206;; Query time: 3 msec;; SERVER: x.x.x.x#53(x.x.x.x);; WHEN: Mon Jul 10 10:38:00 UTC 2023;; MSG SIZE rcvd: 55> View the results online: https://www.jsdelivr.com/globalping?measurement=xrfXUEAOGfzwfHFz

Reselect probes

You can select the same probes used in a previous measurement by passing the measurement ID to the --from flag.

globalping dns google.com from rvasVvKnj48cxNjC
> Mumbai, IN, AS, Google LLC (AS396982) (gcp-asia-south1)
;<<>> DiG 9.16.42-Debian <<>> -t A google.com -p 53 -4 +timeout=3 +tries=2 +nocookie +nosplit +nsid;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42607;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;google.com. IN A;; ANSWER SECTION:google.com. 300 IN A 142.250.199.174;; Query time: 5 msec;; SERVER: x.x.x.x#53(x.x.x.x);; WHEN: Mon Dec 18 10:01:00 UTC 2023;; MSG SIZE rcvd: 55

Reselect probes from measurements in the current session

Use [@1 | first, @2 ... @-2, @-1 | last | previous] to select the probes from previous measurements in the current session.

globalping ping google.com from USA --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from Germany --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from previous --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from @-1 --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from @-2 --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from first --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from @1 --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms

Continuous non-stop measurements

Important

Currently this feature is limited to the ping command

You can use the --infinite flag to continuously ping a host, just like on Linux or MacOS. Note that while it looks like a single measurement, in actuality its multiple measurements from the same probes combined into a single output. This means that eventually you will run out of credits and the test will stop.

globalping ping cdn.jsdelivr.net from Europe --infinite
> London, GB, EU, Psychz Networks (AS40676)
PING cdn.jsdelivr.net (151.101.1.229) 56(84) bytes of data.
64 bytes from 151.101.1.229 (151.101.1.229): icmp_seq=1 ttl=59 time=0.54 ms
64 bytes from 151.101.1.229 (151.101.1.229): icmp_seq=2 ttl=59 time=0.42 ms
^C

If you select multiple probes when using --infinite the output will change to a summary comparison table.

globalping ping cdn.jsdelivr.net from Europe --limit 5 --infinite
Location | Sent | Loss | Last | Min | Avg | Max
London, GB, EU, OVH SAS (AS16276) | 22 | 0.00% | 3.33 ms | 3.07 ms | 3.20 ms | 3.33 ms
Falkenstein, DE, EU, Hetzner Online GmbH (AS24940) | 22 | 0.00% | 5.41 ms | 5.30 ms | 5.78 ms | 13.1 ms
Vienna, AT, EU, EDIS GmbH (AS57169) | 22 | 0.00% | 0.47 ms | 0.46 ms | 0.56 ms | 0.88 ms
Stockholm, SE, EU, The Constant Company, LLC (AS20473) | 22 | 0.00% | 1.03 ms | 0.83 ms | 1.15 ms | 4.66 ms
Madrid, ES, EU, EDGOO NETWORKS LLC (AS47787) | 22 | 0.00% | 0.24 ms | 0.13 ms | 0.26 ms | 0.42 ms
^C

History

You can view the history of your measurements by running the history command.

globalping history
1 | 2024-03-27 11:56:46 | ping google.com
> https://www.jsdelivr.com/globalping?measurement=itcR65tYCqbouXib
- | 2024-03-27 11:57:01 | dns google.com from last
> https://www.jsdelivr.com/globalping?measurement=kWc5UBK9A6G4RUYM
2 | 2024-03-27 11:57:20 | traceroute google.com from New York --limit 2
> https://www.jsdelivr.com/globalping?measurement=Yz7A1UifUonZsC3C
3 | 2024-03-27 11:57:37 | mtr google.com from New York --limit 2
> https://www.jsdelivr.com/globalping?measurement=SX1NBgfDKiabM1vZ
4 | 2024-03-27 11:57:52 | http google.com from London,Belgium --limit 2 --method get --ci
> https://www.jsdelivr.com/globalping?measurement=eclwFSYX0zgU10Cs

Learn about available flags

Most commands have shared and unique flags. We recommend that you familiarize yourself with these so that you can run and automate your network tests in powerful ways.

Simply execute the command you want to learn more about with the --help flag:

globalping [command] --help

Support and Feedback

If you are stuck or want to give us your feedback, please open a new issue.

Development

Please refer to CONTRIBUTING.md for more information.

About

A simple CLI tool to run networking commands remotely from hundreds of globally distributed servers

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Globalping icon Globalping CLI

Access a global network of probes without leaving your console. Benchmark your internet infrastructure, automate uptime and latency monitoring with scripts, or optimize your anycast network – from any location and free of charge. Powered by the Globalping community!

Key features

  • The official command-line interface for the Globalping network
  • Run networking commands from any location in the world
  • Real-time results for all supported commands: ping, mtr, traceroute, DNS resolve, HTTP
  • Includes detailed timings and latency metrics for every test
  • Human-friendly format and output
  • Supports Linux, MacOS, and Windows
  • Auto-updated via all automated installation methods
  • Explore additional Globalping integrations, including our online tools, Slack app, and more

Installation

Install the repository and Globalping CLI using the relevant package manager command from below. This way, you can get future updates by simply running an update with your package manager.

Ubuntu/Debian (deb)

curl -s https://packagecloud.io/install/repositories/jsdelivr/globalping/script.deb.sh | sudo bash
apt install globalping

CentOS/Fedora/Rocky Linux/AlmaLinux (rpm)

curl -s https://packagecloud.io/install/repositories/jsdelivr/globalping/script.rpm.sh | sudo bash
dnf install globalping

Manual installation instructions

MacOS - Homebrew

brew tap jsdelivr/globalping
brew install globalping

Windows - Chocolatey

choco install globalping

Windows - WinGet

winget install globalping

Binary installation

Every new release is compiled into binaries ready to run on most operating systems and provided as assets on GitHub. You can download and execute these binaries directly on your system.

Important

Opting for this installation method means you'll have to repeat this manual process to update the CLI to a newer release!

Explore the available versions.

Updating

If you've installed the Globalping CLI via a package manager, you only need to run the manager's update command to get the latest Globalping CLI version.

Getting started with Globalping CLI

After installing, verify the Globalping CLI is working by running:

globalping --help

The result shows how to use the CLI and which commands and flags are available:

Usage:
globalping [command]
Measurement Commands:
dns Resolve DNS records, similar to the dig command
http Perform a HEAD or GET request to a host
mtr Run a MTR test, which combines traceroute and ping
ping Perform a ping test
traceroute Run a traceroute test
Additional Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
history Display the measurement history of your current session
install-probe Join the Globalping network by running a probe
version Display the version of your installed Globalping CLI
Flags:
-C, --ci disable real-time terminal updates and colors, suitable for CI and
scripting (default false)
-F, --from string specify the probe locations as a comma-separated list; you may use:
- names of continents, regions, countries, US states, cities, or
networks
- [@1 | first, @2 ... @-2, @-1 | last | previous] to run with the probes
from previous measurements in this session
- an ID of a previous measurement to run with its probes
(default "world")
-h, --help help for globalping
-4, --ipv4 resolve names to IPv4 addresses
-6, --ipv6 resolve names to IPv6 addresses
-J, --json output results in JSON format (default false)
--latency output only the latency stats; applicable only to dns, http, and ping
commands (default false)
-L, --limit int define the number of probes to use (default 1)
--share print a link at the end of the results to visualize them online (default
false)
Use "globalping [command] --help" for more information about a command.

Run your first tests

Globalping relies on a community-hosted probe network, enabling you to run network tests from any location with an active probe. The following examples show you through some tests, exploring how to define locations, set limits, and use some command flags.

Filter locations

For example, if you want to run ping from a probe in Seattle that is also part of the Comcast network, run the following:

globalping ping google.com from Comcast+Seattle
> Seattle (WA), US, NA, Comcast Cable Communications, LLC (AS33650)
PING (142.250.217.78) 56(84) bytes of data.
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=1 ttl=58 time=14.0 ms
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=2 ttl=58 time=14.5 ms
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=3 ttl=58 time=15.9 ms
--- ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 402ms
rtt min/avg/max/mdev = 13.985/14.779/15.886/0.807 ms

You can use the + symbol as a filter to select the desired location of the probes more precisely.

Tip

You can mix and match any location type, including countries, continents, cities, US states, regions, ASNs, ISP names, eyeball or data center tags, and cloud region names.

Define multiple locations and basic flags

With the following command, we execute four ping commands at four different locations and obtain the summarized latency metrics for each test as a result:

globalping ping google.com from Amazon,Germany,USA,Dallas --limit 4 --latency
> Seoul, KR, AS, Amazon.com, Inc. (AS16509) (aws-ap-northeast-2)
Min: 33.163 ms
Max: 33.256 ms
Avg: 33.22 ms
> Frankfurt, DE, EU, DE, OVH SAS (AS16276)
Min: 1.221 ms
Max: 1.291 ms
Avg: 1.264 ms
> Chicago (IL), US, NA, Cogent Communications (AS174)
Min: 112.405 ms
Max: 112.686 ms
Avg: 112.528 ms
> Dallas (TX), US, NA, Catalyst Host LLC (AS393336)
Min: 1.579 ms
Max: 1.588 ms
Avg: 1.584 ms

You can select multiple locations for running a command by using a comma , as a delimiter. When doing so, make sure to also specify the number of tests to run with the --limit flag. For example, to run ping from four different locations (as we did in the example above), add --limit 4 to make sure you get one test result per location. Otherwise, the default limit of 1 will be selected, resulting in a random result from one of the four locations.

Finally, you can use the --latency parameter to only get the summarized latency data instead of the full raw output.

Tip

We recommend reading our tips and best practices to learn more about defining locations effectively!

Share results online

Include a link at the bottom of your results using the --share flag to view and share the test results online.

Important

Shareable links and the respective saved measurement results expire after a few weeks, depending on the user type. GitHub Sponsors, for example, enjoy extended result storage.

 globalping dns google.com from gcp-asia-south1 --share
> Mumbai, IN, AS, Google LLC (AS396982) (gcp-asia-south1)
;<<>> DiG 9.16.37-Debian <<>> -t A google.com -p 53 -4 +timeout=3 +tries=2 +nocookie +nsid;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23733;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;google.com. IN A;; ANSWER SECTION:google.com. 300 IN A 142.250.183.206;; Query time: 3 msec;; SERVER: x.x.x.x#53(x.x.x.x);; WHEN: Mon Jul 10 10:38:00 UTC 2023;; MSG SIZE rcvd: 55> View the results online: https://www.jsdelivr.com/globalping?measurement=xrfXUEAOGfzwfHFz

Reselect probes

You can select the same probes used in a previous measurement by passing the measurement ID to the --from flag.

globalping dns google.com from rvasVvKnj48cxNjC
> Mumbai, IN, AS, Google LLC (AS396982) (gcp-asia-south1)
;<<>> DiG 9.16.42-Debian <<>> -t A google.com -p 53 -4 +timeout=3 +tries=2 +nocookie +nosplit +nsid;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42607;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;google.com. IN A;; ANSWER SECTION:google.com. 300 IN A 142.250.199.174;; Query time: 5 msec;; SERVER: x.x.x.x#53(x.x.x.x);; WHEN: Mon Dec 18 10:01:00 UTC 2023;; MSG SIZE rcvd: 55

Reselect probes from measurements in the current session

Use [@1 | first, @2 ... @-2, @-1 | last | previous] to select the probes from previous measurements in the current session.

globalping ping google.com from USA --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from Germany --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from previous --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from @-1 --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from @-2 --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from first --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from @1 --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms

Continuous non-stop measurements

Important

Currently this feature is limited to the ping command

You can use the --infinite flag to continuously ping a host, just like on Linux or MacOS. Note that while it looks like a single measurement, in actuality its multiple measurements from the same probes combined into a single output. This means that eventually you will run out of credits and the test will stop.

globalping ping cdn.jsdelivr.net from Europe --infinite
> London, GB, EU, Psychz Networks (AS40676)
PING cdn.jsdelivr.net (151.101.1.229) 56(84) bytes of data.
64 bytes from 151.101.1.229 (151.101.1.229): icmp_seq=1 ttl=59 time=0.54 ms
64 bytes from 151.101.1.229 (151.101.1.229): icmp_seq=2 ttl=59 time=0.42 ms
^C

If you select multiple probes when using --infinite the output will change to a summary comparison table.

globalping ping cdn.jsdelivr.net from Europe --limit 5 --infinite
Location | Sent | Loss | Last | Min | Avg | Max
London, GB, EU, OVH SAS (AS16276) | 22 | 0.00% | 3.33 ms | 3.07 ms | 3.20 ms | 3.33 ms
Falkenstein, DE, EU, Hetzner Online GmbH (AS24940) | 22 | 0.00% | 5.41 ms | 5.30 ms | 5.78 ms | 13.1 ms
Vienna, AT, EU, EDIS GmbH (AS57169) | 22 | 0.00% | 0.47 ms | 0.46 ms | 0.56 ms | 0.88 ms
Stockholm, SE, EU, The Constant Company, LLC (AS20473) | 22 | 0.00% | 1.03 ms | 0.83 ms | 1.15 ms | 4.66 ms
Madrid, ES, EU, EDGOO NETWORKS LLC (AS47787) | 22 | 0.00% | 0.24 ms | 0.13 ms | 0.26 ms | 0.42 ms
^C

History

You can view the history of your measurements by running the history command.

globalping history
1 | 2024-03-27 11:56:46 | ping google.com
> https://www.jsdelivr.com/globalping?measurement=itcR65tYCqbouXib
- | 2024-03-27 11:57:01 | dns google.com from last
> https://www.jsdelivr.com/globalping?measurement=kWc5UBK9A6G4RUYM
2 | 2024-03-27 11:57:20 | traceroute google.com from New York --limit 2
> https://www.jsdelivr.com/globalping?measurement=Yz7A1UifUonZsC3C
3 | 2024-03-27 11:57:37 | mtr google.com from New York --limit 2
> https://www.jsdelivr.com/globalping?measurement=SX1NBgfDKiabM1vZ
4 | 2024-03-27 11:57:52 | http google.com from London,Belgium --limit 2 --method get --ci
> https://www.jsdelivr.com/globalping?measurement=eclwFSYX0zgU10Cs

Learn about available flags

Most commands have shared and unique flags. We recommend that you familiarize yourself with these so that you can run and automate your network tests in powerful ways.

Simply execute the command you want to learn more about with the --help flag:

globalping [command] --help

Support and Feedback

If you are stuck or want to give us your feedback, please open a new issue.

Development

Please refer to CONTRIBUTING.md for more information.

About

A simple CLI tool to run networking commands remotely from hundreds of globally distributed servers

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Globalping icon Globalping CLI

Access a global network of probes without leaving your console. Benchmark your internet infrastructure, automate uptime and latency monitoring with scripts, or optimize your anycast network – from any location and free of charge. Powered by the Globalping community!

Key features

  • The official command-line interface for the Globalping network
  • Run networking commands from any location in the world
  • Real-time results for all supported commands: ping, mtr, traceroute, DNS resolve, HTTP
  • Includes detailed timings and latency metrics for every test
  • Human-friendly format and output
  • Supports Linux, MacOS, and Windows
  • Auto-updated via all automated installation methods
  • Explore additional Globalping integrations, including our online tools, Slack app, and more

Installation

Install the repository and Globalping CLI using the relevant package manager command from below. This way, you can get future updates by simply running an update with your package manager.

Ubuntu/Debian (deb)

curl -s https://packagecloud.io/install/repositories/jsdelivr/globalping/script.deb.sh | sudo bash
apt install globalping

CentOS/Fedora/Rocky Linux/AlmaLinux (rpm)

curl -s https://packagecloud.io/install/repositories/jsdelivr/globalping/script.rpm.sh | sudo bash
dnf install globalping

Manual installation instructions

MacOS - Homebrew

brew tap jsdelivr/globalping
brew install globalping

Windows - Chocolatey

choco install globalping

Windows - WinGet

winget install globalping

Binary installation

Every new release is compiled into binaries ready to run on most operating systems and provided as assets on GitHub. You can download and execute these binaries directly on your system.

Important

Opting for this installation method means you'll have to repeat this manual process to update the CLI to a newer release!

Explore the available versions.

Updating

If you've installed the Globalping CLI via a package manager, you only need to run the manager's update command to get the latest Globalping CLI version.

Getting started with Globalping CLI

After installing, verify the Globalping CLI is working by running:

globalping --help

The result shows how to use the CLI and which commands and flags are available:

Usage:
globalping [command]
Measurement Commands:
dns Resolve DNS records, similar to the dig command
http Perform a HEAD or GET request to a host
mtr Run a MTR test, which combines traceroute and ping
ping Perform a ping test
traceroute Run a traceroute test
Additional Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
history Display the measurement history of your current session
install-probe Join the Globalping network by running a probe
version Display the version of your installed Globalping CLI
Flags:
-C, --ci disable real-time terminal updates and colors, suitable for CI and
scripting (default false)
-F, --from string specify the probe locations as a comma-separated list; you may use:
- names of continents, regions, countries, US states, cities, or
networks
- [@1 | first, @2 ... @-2, @-1 | last | previous] to run with the probes
from previous measurements in this session
- an ID of a previous measurement to run with its probes
(default "world")
-h, --help help for globalping
-4, --ipv4 resolve names to IPv4 addresses
-6, --ipv6 resolve names to IPv6 addresses
-J, --json output results in JSON format (default false)
--latency output only the latency stats; applicable only to dns, http, and ping
commands (default false)
-L, --limit int define the number of probes to use (default 1)
--share print a link at the end of the results to visualize them online (default
false)
Use "globalping [command] --help" for more information about a command.

Run your first tests

Globalping relies on a community-hosted probe network, enabling you to run network tests from any location with an active probe. The following examples show you through some tests, exploring how to define locations, set limits, and use some command flags.

Filter locations

For example, if you want to run ping from a probe in Seattle that is also part of the Comcast network, run the following:

globalping ping google.com from Comcast+Seattle
> Seattle (WA), US, NA, Comcast Cable Communications, LLC (AS33650)
PING (142.250.217.78) 56(84) bytes of data.
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=1 ttl=58 time=14.0 ms
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=2 ttl=58 time=14.5 ms
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=3 ttl=58 time=15.9 ms
--- ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 402ms
rtt min/avg/max/mdev = 13.985/14.779/15.886/0.807 ms

You can use the + symbol as a filter to select the desired location of the probes more precisely.

Tip

You can mix and match any location type, including countries, continents, cities, US states, regions, ASNs, ISP names, eyeball or data center tags, and cloud region names.

Define multiple locations and basic flags

With the following command, we execute four ping commands at four different locations and obtain the summarized latency metrics for each test as a result:

globalping ping google.com from Amazon,Germany,USA,Dallas --limit 4 --latency
> Seoul, KR, AS, Amazon.com, Inc. (AS16509) (aws-ap-northeast-2)
Min: 33.163 ms
Max: 33.256 ms
Avg: 33.22 ms
> Frankfurt, DE, EU, DE, OVH SAS (AS16276)
Min: 1.221 ms
Max: 1.291 ms
Avg: 1.264 ms
> Chicago (IL), US, NA, Cogent Communications (AS174)
Min: 112.405 ms
Max: 112.686 ms
Avg: 112.528 ms
> Dallas (TX), US, NA, Catalyst Host LLC (AS393336)
Min: 1.579 ms
Max: 1.588 ms
Avg: 1.584 ms

You can select multiple locations for running a command by using a comma , as a delimiter. When doing so, make sure to also specify the number of tests to run with the --limit flag. For example, to run ping from four different locations (as we did in the example above), add --limit 4 to make sure you get one test result per location. Otherwise, the default limit of 1 will be selected, resulting in a random result from one of the four locations.

Finally, you can use the --latency parameter to only get the summarized latency data instead of the full raw output.

Tip

We recommend reading our tips and best practices to learn more about defining locations effectively!

Share results online

Include a link at the bottom of your results using the --share flag to view and share the test results online.

Important

Shareable links and the respective saved measurement results expire after a few weeks, depending on the user type. GitHub Sponsors, for example, enjoy extended result storage.

 globalping dns google.com from gcp-asia-south1 --share
> Mumbai, IN, AS, Google LLC (AS396982) (gcp-asia-south1)
;<<>> DiG 9.16.37-Debian <<>> -t A google.com -p 53 -4 +timeout=3 +tries=2 +nocookie +nsid;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23733;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;google.com. IN A;; ANSWER SECTION:google.com. 300 IN A 142.250.183.206;; Query time: 3 msec;; SERVER: x.x.x.x#53(x.x.x.x);; WHEN: Mon Jul 10 10:38:00 UTC 2023;; MSG SIZE rcvd: 55> View the results online: https://www.jsdelivr.com/globalping?measurement=xrfXUEAOGfzwfHFz

Reselect probes

You can select the same probes used in a previous measurement by passing the measurement ID to the --from flag.

globalping dns google.com from rvasVvKnj48cxNjC
> Mumbai, IN, AS, Google LLC (AS396982) (gcp-asia-south1)
;<<>> DiG 9.16.42-Debian <<>> -t A google.com -p 53 -4 +timeout=3 +tries=2 +nocookie +nosplit +nsid;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42607;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;google.com. IN A;; ANSWER SECTION:google.com. 300 IN A 142.250.199.174;; Query time: 5 msec;; SERVER: x.x.x.x#53(x.x.x.x);; WHEN: Mon Dec 18 10:01:00 UTC 2023;; MSG SIZE rcvd: 55

Reselect probes from measurements in the current session

Use [@1 | first, @2 ... @-2, @-1 | last | previous] to select the probes from previous measurements in the current session.

globalping ping google.com from USA --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from Germany --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from previous --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from @-1 --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from @-2 --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from first --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from @1 --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms

Continuous non-stop measurements

Important

Currently this feature is limited to the ping command

You can use the --infinite flag to continuously ping a host, just like on Linux or MacOS. Note that while it looks like a single measurement, in actuality its multiple measurements from the same probes combined into a single output. This means that eventually you will run out of credits and the test will stop.

globalping ping cdn.jsdelivr.net from Europe --infinite
> London, GB, EU, Psychz Networks (AS40676)
PING cdn.jsdelivr.net (151.101.1.229) 56(84) bytes of data.
64 bytes from 151.101.1.229 (151.101.1.229): icmp_seq=1 ttl=59 time=0.54 ms
64 bytes from 151.101.1.229 (151.101.1.229): icmp_seq=2 ttl=59 time=0.42 ms
^C

If you select multiple probes when using --infinite the output will change to a summary comparison table.

globalping ping cdn.jsdelivr.net from Europe --limit 5 --infinite
Location | Sent | Loss | Last | Min | Avg | Max
London, GB, EU, OVH SAS (AS16276) | 22 | 0.00% | 3.33 ms | 3.07 ms | 3.20 ms | 3.33 ms
Falkenstein, DE, EU, Hetzner Online GmbH (AS24940) | 22 | 0.00% | 5.41 ms | 5.30 ms | 5.78 ms | 13.1 ms
Vienna, AT, EU, EDIS GmbH (AS57169) | 22 | 0.00% | 0.47 ms | 0.46 ms | 0.56 ms | 0.88 ms
Stockholm, SE, EU, The Constant Company, LLC (AS20473) | 22 | 0.00% | 1.03 ms | 0.83 ms | 1.15 ms | 4.66 ms
Madrid, ES, EU, EDGOO NETWORKS LLC (AS47787) | 22 | 0.00% | 0.24 ms | 0.13 ms | 0.26 ms | 0.42 ms
^C

History

You can view the history of your measurements by running the history command.

globalping history
1 | 2024-03-27 11:56:46 | ping google.com
> https://www.jsdelivr.com/globalping?measurement=itcR65tYCqbouXib
- | 2024-03-27 11:57:01 | dns google.com from last
> https://www.jsdelivr.com/globalping?measurement=kWc5UBK9A6G4RUYM
2 | 2024-03-27 11:57:20 | traceroute google.com from New York --limit 2
> https://www.jsdelivr.com/globalping?measurement=Yz7A1UifUonZsC3C
3 | 2024-03-27 11:57:37 | mtr google.com from New York --limit 2
> https://www.jsdelivr.com/globalping?measurement=SX1NBgfDKiabM1vZ
4 | 2024-03-27 11:57:52 | http google.com from London,Belgium --limit 2 --method get --ci
> https://www.jsdelivr.com/globalping?measurement=eclwFSYX0zgU10Cs

Learn about available flags

Most commands have shared and unique flags. We recommend that you familiarize yourself with these so that you can run and automate your network tests in powerful ways.

Simply execute the command you want to learn more about with the --help flag:

globalping [command] --help

Support and Feedback

If you are stuck or want to give us your feedback, please open a new issue.

Development

Please refer to CONTRIBUTING.md for more information.

About

A simple CLI tool to run networking commands remotely from hundreds of globally distributed servers

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Globalping icon Globalping CLI

Access a global network of probes without leaving your console. Benchmark your internet infrastructure, automate uptime and latency monitoring with scripts, or optimize your anycast network – from any location and free of charge. Powered by the Globalping community!

Key features

  • The official command-line interface for the Globalping network
  • Run networking commands from any location in the world
  • Real-time results for all supported commands: ping, mtr, traceroute, DNS resolve, HTTP
  • Includes detailed timings and latency metrics for every test
  • Human-friendly format and output
  • Supports Linux, MacOS, and Windows
  • Auto-updated via all automated installation methods
  • Explore additional Globalping integrations, including our online tools, Slack app, and more

Installation

Install the repository and Globalping CLI using the relevant package manager command from below. This way, you can get future updates by simply running an update with your package manager.

Ubuntu/Debian (deb)

curl -s https://packagecloud.io/install/repositories/jsdelivr/globalping/script.deb.sh | sudo bash
apt install globalping

CentOS/Fedora/Rocky Linux/AlmaLinux (rpm)

curl -s https://packagecloud.io/install/repositories/jsdelivr/globalping/script.rpm.sh | sudo bash
dnf install globalping

Manual installation instructions

MacOS - Homebrew

brew tap jsdelivr/globalping
brew install globalping

Windows - Chocolatey

choco install globalping

Windows - WinGet

winget install globalping

Binary installation

Every new release is compiled into binaries ready to run on most operating systems and provided as assets on GitHub. You can download and execute these binaries directly on your system.

Important

Opting for this installation method means you'll have to repeat this manual process to update the CLI to a newer release!

Explore the available versions.

Updating

If you've installed the Globalping CLI via a package manager, you only need to run the manager's update command to get the latest Globalping CLI version.

Getting started with Globalping CLI

After installing, verify the Globalping CLI is working by running:

globalping --help

The result shows how to use the CLI and which commands and flags are available:

Usage:
globalping [command]
Measurement Commands:
dns Resolve DNS records, similar to the dig command
http Perform a HEAD or GET request to a host
mtr Run a MTR test, which combines traceroute and ping
ping Perform a ping test
traceroute Run a traceroute test
Additional Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
history Display the measurement history of your current session
install-probe Join the Globalping network by running a probe
version Display the version of your installed Globalping CLI
Flags:
-C, --ci disable real-time terminal updates and colors, suitable for CI and
scripting (default false)
-F, --from string specify the probe locations as a comma-separated list; you may use:
- names of continents, regions, countries, US states, cities, or
networks
- [@1 | first, @2 ... @-2, @-1 | last | previous] to run with the probes
from previous measurements in this session
- an ID of a previous measurement to run with its probes
(default "world")
-h, --help help for globalping
-4, --ipv4 resolve names to IPv4 addresses
-6, --ipv6 resolve names to IPv6 addresses
-J, --json output results in JSON format (default false)
--latency output only the latency stats; applicable only to dns, http, and ping
commands (default false)
-L, --limit int define the number of probes to use (default 1)
--share print a link at the end of the results to visualize them online (default
false)
Use "globalping [command] --help" for more information about a command.

Run your first tests

Globalping relies on a community-hosted probe network, enabling you to run network tests from any location with an active probe. The following examples show you through some tests, exploring how to define locations, set limits, and use some command flags.

Filter locations

For example, if you want to run ping from a probe in Seattle that is also part of the Comcast network, run the following:

globalping ping google.com from Comcast+Seattle
> Seattle (WA), US, NA, Comcast Cable Communications, LLC (AS33650)
PING (142.250.217.78) 56(84) bytes of data.
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=1 ttl=58 time=14.0 ms
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=2 ttl=58 time=14.5 ms
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=3 ttl=58 time=15.9 ms
--- ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 402ms
rtt min/avg/max/mdev = 13.985/14.779/15.886/0.807 ms

You can use the + symbol as a filter to select the desired location of the probes more precisely.

Tip

You can mix and match any location type, including countries, continents, cities, US states, regions, ASNs, ISP names, eyeball or data center tags, and cloud region names.

Define multiple locations and basic flags

With the following command, we execute four ping commands at four different locations and obtain the summarized latency metrics for each test as a result:

globalping ping google.com from Amazon,Germany,USA,Dallas --limit 4 --latency
> Seoul, KR, AS, Amazon.com, Inc. (AS16509) (aws-ap-northeast-2)
Min: 33.163 ms
Max: 33.256 ms
Avg: 33.22 ms
> Frankfurt, DE, EU, DE, OVH SAS (AS16276)
Min: 1.221 ms
Max: 1.291 ms
Avg: 1.264 ms
> Chicago (IL), US, NA, Cogent Communications (AS174)
Min: 112.405 ms
Max: 112.686 ms
Avg: 112.528 ms
> Dallas (TX), US, NA, Catalyst Host LLC (AS393336)
Min: 1.579 ms
Max: 1.588 ms
Avg: 1.584 ms

You can select multiple locations for running a command by using a comma , as a delimiter. When doing so, make sure to also specify the number of tests to run with the --limit flag. For example, to run ping from four different locations (as we did in the example above), add --limit 4 to make sure you get one test result per location. Otherwise, the default limit of 1 will be selected, resulting in a random result from one of the four locations.

Finally, you can use the --latency parameter to only get the summarized latency data instead of the full raw output.

Tip

We recommend reading our tips and best practices to learn more about defining locations effectively!

Share results online

Include a link at the bottom of your results using the --share flag to view and share the test results online.

Important

Shareable links and the respective saved measurement results expire after a few weeks, depending on the user type. GitHub Sponsors, for example, enjoy extended result storage.

 globalping dns google.com from gcp-asia-south1 --share
> Mumbai, IN, AS, Google LLC (AS396982) (gcp-asia-south1)
;<<>> DiG 9.16.37-Debian <<>> -t A google.com -p 53 -4 +timeout=3 +tries=2 +nocookie +nsid;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23733;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;google.com. IN A;; ANSWER SECTION:google.com. 300 IN A 142.250.183.206;; Query time: 3 msec;; SERVER: x.x.x.x#53(x.x.x.x);; WHEN: Mon Jul 10 10:38:00 UTC 2023;; MSG SIZE rcvd: 55> View the results online: https://www.jsdelivr.com/globalping?measurement=xrfXUEAOGfzwfHFz

Reselect probes

You can select the same probes used in a previous measurement by passing the measurement ID to the --from flag.

globalping dns google.com from rvasVvKnj48cxNjC
> Mumbai, IN, AS, Google LLC (AS396982) (gcp-asia-south1)
;<<>> DiG 9.16.42-Debian <<>> -t A google.com -p 53 -4 +timeout=3 +tries=2 +nocookie +nosplit +nsid;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42607;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;google.com. IN A;; ANSWER SECTION:google.com. 300 IN A 142.250.199.174;; Query time: 5 msec;; SERVER: x.x.x.x#53(x.x.x.x);; WHEN: Mon Dec 18 10:01:00 UTC 2023;; MSG SIZE rcvd: 55

Reselect probes from measurements in the current session

Use [@1 | first, @2 ... @-2, @-1 | last | previous] to select the probes from previous measurements in the current session.

globalping ping google.com from USA --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from Germany --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from previous --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from @-1 --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from @-2 --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from first --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from @1 --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms

Continuous non-stop measurements

Important

Currently this feature is limited to the ping command

You can use the --infinite flag to continuously ping a host, just like on Linux or MacOS. Note that while it looks like a single measurement, in actuality its multiple measurements from the same probes combined into a single output. This means that eventually you will run out of credits and the test will stop.

globalping ping cdn.jsdelivr.net from Europe --infinite
> London, GB, EU, Psychz Networks (AS40676)
PING cdn.jsdelivr.net (151.101.1.229) 56(84) bytes of data.
64 bytes from 151.101.1.229 (151.101.1.229): icmp_seq=1 ttl=59 time=0.54 ms
64 bytes from 151.101.1.229 (151.101.1.229): icmp_seq=2 ttl=59 time=0.42 ms
^C

If you select multiple probes when using --infinite the output will change to a summary comparison table.

globalping ping cdn.jsdelivr.net from Europe --limit 5 --infinite
Location | Sent | Loss | Last | Min | Avg | Max
London, GB, EU, OVH SAS (AS16276) | 22 | 0.00% | 3.33 ms | 3.07 ms | 3.20 ms | 3.33 ms
Falkenstein, DE, EU, Hetzner Online GmbH (AS24940) | 22 | 0.00% | 5.41 ms | 5.30 ms | 5.78 ms | 13.1 ms
Vienna, AT, EU, EDIS GmbH (AS57169) | 22 | 0.00% | 0.47 ms | 0.46 ms | 0.56 ms | 0.88 ms
Stockholm, SE, EU, The Constant Company, LLC (AS20473) | 22 | 0.00% | 1.03 ms | 0.83 ms | 1.15 ms | 4.66 ms
Madrid, ES, EU, EDGOO NETWORKS LLC (AS47787) | 22 | 0.00% | 0.24 ms | 0.13 ms | 0.26 ms | 0.42 ms
^C

History

You can view the history of your measurements by running the history command.

globalping history
1 | 2024-03-27 11:56:46 | ping google.com
> https://www.jsdelivr.com/globalping?measurement=itcR65tYCqbouXib
- | 2024-03-27 11:57:01 | dns google.com from last
> https://www.jsdelivr.com/globalping?measurement=kWc5UBK9A6G4RUYM
2 | 2024-03-27 11:57:20 | traceroute google.com from New York --limit 2
> https://www.jsdelivr.com/globalping?measurement=Yz7A1UifUonZsC3C
3 | 2024-03-27 11:57:37 | mtr google.com from New York --limit 2
> https://www.jsdelivr.com/globalping?measurement=SX1NBgfDKiabM1vZ
4 | 2024-03-27 11:57:52 | http google.com from London,Belgium --limit 2 --method get --ci
> https://www.jsdelivr.com/globalping?measurement=eclwFSYX0zgU10Cs

Learn about available flags

Most commands have shared and unique flags. We recommend that you familiarize yourself with these so that you can run and automate your network tests in powerful ways.

Simply execute the command you want to learn more about with the --help flag:

globalping [command] --help

Support and Feedback

If you are stuck or want to give us your feedback, please open a new issue.

Development

Please refer to CONTRIBUTING.md for more information.

About

A simple CLI tool to run networking commands remotely from hundreds of globally distributed servers

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Globalping icon Globalping CLI

Access a global network of probes without leaving your console. Benchmark your internet infrastructure, automate uptime and latency monitoring with scripts, or optimize your anycast network – from any location and free of charge. Powered by the Globalping community!

Key features

  • The official command-line interface for the Globalping network
  • Run networking commands from any location in the world
  • Real-time results for all supported commands: ping, mtr, traceroute, DNS resolve, HTTP
  • Includes detailed timings and latency metrics for every test
  • Human-friendly format and output
  • Supports Linux, MacOS, and Windows
  • Auto-updated via all automated installation methods
  • Explore additional Globalping integrations, including our online tools, Slack app, and more

Installation

Install the repository and Globalping CLI using the relevant package manager command from below. This way, you can get future updates by simply running an update with your package manager.

Ubuntu/Debian (deb)

curl -s https://packagecloud.io/install/repositories/jsdelivr/globalping/script.deb.sh | sudo bash
apt install globalping

CentOS/Fedora/Rocky Linux/AlmaLinux (rpm)

curl -s https://packagecloud.io/install/repositories/jsdelivr/globalping/script.rpm.sh | sudo bash
dnf install globalping

Manual installation instructions

MacOS - Homebrew

brew tap jsdelivr/globalping
brew install globalping

Windows - Chocolatey

choco install globalping

Windows - WinGet

winget install globalping

Binary installation

Every new release is compiled into binaries ready to run on most operating systems and provided as assets on GitHub. You can download and execute these binaries directly on your system.

Important

Opting for this installation method means you'll have to repeat this manual process to update the CLI to a newer release!

Explore the available versions.

Updating

If you've installed the Globalping CLI via a package manager, you only need to run the manager's update command to get the latest Globalping CLI version.

Getting started with Globalping CLI

After installing, verify the Globalping CLI is working by running:

globalping --help

The result shows how to use the CLI and which commands and flags are available:

Usage:
globalping [command]
Measurement Commands:
dns Resolve DNS records, similar to the dig command
http Perform a HEAD or GET request to a host
mtr Run a MTR test, which combines traceroute and ping
ping Perform a ping test
traceroute Run a traceroute test
Additional Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
history Display the measurement history of your current session
install-probe Join the Globalping network by running a probe
version Display the version of your installed Globalping CLI
Flags:
-C, --ci disable real-time terminal updates and colors, suitable for CI and
scripting (default false)
-F, --from string specify the probe locations as a comma-separated list; you may use:
- names of continents, regions, countries, US states, cities, or
networks
- [@1 | first, @2 ... @-2, @-1 | last | previous] to run with the probes
from previous measurements in this session
- an ID of a previous measurement to run with its probes
(default "world")
-h, --help help for globalping
-4, --ipv4 resolve names to IPv4 addresses
-6, --ipv6 resolve names to IPv6 addresses
-J, --json output results in JSON format (default false)
--latency output only the latency stats; applicable only to dns, http, and ping
commands (default false)
-L, --limit int define the number of probes to use (default 1)
--share print a link at the end of the results to visualize them online (default
false)
Use "globalping [command] --help" for more information about a command.

Run your first tests

Globalping relies on a community-hosted probe network, enabling you to run network tests from any location with an active probe. The following examples show you through some tests, exploring how to define locations, set limits, and use some command flags.

Filter locations

For example, if you want to run ping from a probe in Seattle that is also part of the Comcast network, run the following:

globalping ping google.com from Comcast+Seattle
> Seattle (WA), US, NA, Comcast Cable Communications, LLC (AS33650)
PING (142.250.217.78) 56(84) bytes of data.
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=1 ttl=58 time=14.0 ms
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=2 ttl=58 time=14.5 ms
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=3 ttl=58 time=15.9 ms
--- ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 402ms
rtt min/avg/max/mdev = 13.985/14.779/15.886/0.807 ms

You can use the + symbol as a filter to select the desired location of the probes more precisely.

Tip

You can mix and match any location type, including countries, continents, cities, US states, regions, ASNs, ISP names, eyeball or data center tags, and cloud region names.

Define multiple locations and basic flags

With the following command, we execute four ping commands at four different locations and obtain the summarized latency metrics for each test as a result:

globalping ping google.com from Amazon,Germany,USA,Dallas --limit 4 --latency
> Seoul, KR, AS, Amazon.com, Inc. (AS16509) (aws-ap-northeast-2)
Min: 33.163 ms
Max: 33.256 ms
Avg: 33.22 ms
> Frankfurt, DE, EU, DE, OVH SAS (AS16276)
Min: 1.221 ms
Max: 1.291 ms
Avg: 1.264 ms
> Chicago (IL), US, NA, Cogent Communications (AS174)
Min: 112.405 ms
Max: 112.686 ms
Avg: 112.528 ms
> Dallas (TX), US, NA, Catalyst Host LLC (AS393336)
Min: 1.579 ms
Max: 1.588 ms
Avg: 1.584 ms

You can select multiple locations for running a command by using a comma , as a delimiter. When doing so, make sure to also specify the number of tests to run with the --limit flag. For example, to run ping from four different locations (as we did in the example above), add --limit 4 to make sure you get one test result per location. Otherwise, the default limit of 1 will be selected, resulting in a random result from one of the four locations.

Finally, you can use the --latency parameter to only get the summarized latency data instead of the full raw output.

Tip

We recommend reading our tips and best practices to learn more about defining locations effectively!

Share results online

Include a link at the bottom of your results using the --share flag to view and share the test results online.

Important

Shareable links and the respective saved measurement results expire after a few weeks, depending on the user type. GitHub Sponsors, for example, enjoy extended result storage.

 globalping dns google.com from gcp-asia-south1 --share
> Mumbai, IN, AS, Google LLC (AS396982) (gcp-asia-south1)
;<<>> DiG 9.16.37-Debian <<>> -t A google.com -p 53 -4 +timeout=3 +tries=2 +nocookie +nsid;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23733;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;google.com. IN A;; ANSWER SECTION:google.com. 300 IN A 142.250.183.206;; Query time: 3 msec;; SERVER: x.x.x.x#53(x.x.x.x);; WHEN: Mon Jul 10 10:38:00 UTC 2023;; MSG SIZE rcvd: 55> View the results online: https://www.jsdelivr.com/globalping?measurement=xrfXUEAOGfzwfHFz

Reselect probes

You can select the same probes used in a previous measurement by passing the measurement ID to the --from flag.

globalping dns google.com from rvasVvKnj48cxNjC
> Mumbai, IN, AS, Google LLC (AS396982) (gcp-asia-south1)
;<<>> DiG 9.16.42-Debian <<>> -t A google.com -p 53 -4 +timeout=3 +tries=2 +nocookie +nosplit +nsid;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42607;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;google.com. IN A;; ANSWER SECTION:google.com. 300 IN A 142.250.199.174;; Query time: 5 msec;; SERVER: x.x.x.x#53(x.x.x.x);; WHEN: Mon Dec 18 10:01:00 UTC 2023;; MSG SIZE rcvd: 55

Reselect probes from measurements in the current session

Use [@1 | first, @2 ... @-2, @-1 | last | previous] to select the probes from previous measurements in the current session.

globalping ping google.com from USA --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from Germany --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from previous --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from @-1 --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from @-2 --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from first --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from @1 --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms

Continuous non-stop measurements

Important

Currently this feature is limited to the ping command

You can use the --infinite flag to continuously ping a host, just like on Linux or MacOS. Note that while it looks like a single measurement, in actuality its multiple measurements from the same probes combined into a single output. This means that eventually you will run out of credits and the test will stop.

globalping ping cdn.jsdelivr.net from Europe --infinite
> London, GB, EU, Psychz Networks (AS40676)
PING cdn.jsdelivr.net (151.101.1.229) 56(84) bytes of data.
64 bytes from 151.101.1.229 (151.101.1.229): icmp_seq=1 ttl=59 time=0.54 ms
64 bytes from 151.101.1.229 (151.101.1.229): icmp_seq=2 ttl=59 time=0.42 ms
^C

If you select multiple probes when using --infinite the output will change to a summary comparison table.

globalping ping cdn.jsdelivr.net from Europe --limit 5 --infinite
Location | Sent | Loss | Last | Min | Avg | Max
London, GB, EU, OVH SAS (AS16276) | 22 | 0.00% | 3.33 ms | 3.07 ms | 3.20 ms | 3.33 ms
Falkenstein, DE, EU, Hetzner Online GmbH (AS24940) | 22 | 0.00% | 5.41 ms | 5.30 ms | 5.78 ms | 13.1 ms
Vienna, AT, EU, EDIS GmbH (AS57169) | 22 | 0.00% | 0.47 ms | 0.46 ms | 0.56 ms | 0.88 ms
Stockholm, SE, EU, The Constant Company, LLC (AS20473) | 22 | 0.00% | 1.03 ms | 0.83 ms | 1.15 ms | 4.66 ms
Madrid, ES, EU, EDGOO NETWORKS LLC (AS47787) | 22 | 0.00% | 0.24 ms | 0.13 ms | 0.26 ms | 0.42 ms
^C

History

You can view the history of your measurements by running the history command.

globalping history
1 | 2024-03-27 11:56:46 | ping google.com
> https://www.jsdelivr.com/globalping?measurement=itcR65tYCqbouXib
- | 2024-03-27 11:57:01 | dns google.com from last
> https://www.jsdelivr.com/globalping?measurement=kWc5UBK9A6G4RUYM
2 | 2024-03-27 11:57:20 | traceroute google.com from New York --limit 2
> https://www.jsdelivr.com/globalping?measurement=Yz7A1UifUonZsC3C
3 | 2024-03-27 11:57:37 | mtr google.com from New York --limit 2
> https://www.jsdelivr.com/globalping?measurement=SX1NBgfDKiabM1vZ
4 | 2024-03-27 11:57:52 | http google.com from London,Belgium --limit 2 --method get --ci
> https://www.jsdelivr.com/globalping?measurement=eclwFSYX0zgU10Cs

Learn about available flags

Most commands have shared and unique flags. We recommend that you familiarize yourself with these so that you can run and automate your network tests in powerful ways.

Simply execute the command you want to learn more about with the --help flag:

globalping [command] --help

Support and Feedback

If you are stuck or want to give us your feedback, please open a new issue.

Development

Please refer to CONTRIBUTING.md for more information.

About

A simple CLI tool to run networking commands remotely from hundreds of globally distributed servers

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Globalping icon Globalping CLI

Access a global network of probes without leaving your console. Benchmark your internet infrastructure, automate uptime and latency monitoring with scripts, or optimize your anycast network – from any location and free of charge. Powered by the Globalping community!

Key features

  • The official command-line interface for the Globalping network
  • Run networking commands from any location in the world
  • Real-time results for all supported commands: ping, mtr, traceroute, DNS resolve, HTTP
  • Includes detailed timings and latency metrics for every test
  • Human-friendly format and output
  • Supports Linux, MacOS, and Windows
  • Auto-updated via all automated installation methods
  • Explore additional Globalping integrations, including our online tools, Slack app, and more

Installation

Install the repository and Globalping CLI using the relevant package manager command from below. This way, you can get future updates by simply running an update with your package manager.

Ubuntu/Debian (deb)

curl -s https://packagecloud.io/install/repositories/jsdelivr/globalping/script.deb.sh | sudo bash
apt install globalping

CentOS/Fedora/Rocky Linux/AlmaLinux (rpm)

curl -s https://packagecloud.io/install/repositories/jsdelivr/globalping/script.rpm.sh | sudo bash
dnf install globalping

Manual installation instructions

MacOS - Homebrew

brew tap jsdelivr/globalping
brew install globalping

Windows - Chocolatey

choco install globalping

Windows - WinGet

winget install globalping

Binary installation

Every new release is compiled into binaries ready to run on most operating systems and provided as assets on GitHub. You can download and execute these binaries directly on your system.

Important

Opting for this installation method means you'll have to repeat this manual process to update the CLI to a newer release!

Explore the available versions.

Updating

If you've installed the Globalping CLI via a package manager, you only need to run the manager's update command to get the latest Globalping CLI version.

Getting started with Globalping CLI

After installing, verify the Globalping CLI is working by running:

globalping --help

The result shows how to use the CLI and which commands and flags are available:

Usage:
globalping [command]
Measurement Commands:
dns Resolve DNS records, similar to the dig command
http Perform a HEAD or GET request to a host
mtr Run a MTR test, which combines traceroute and ping
ping Perform a ping test
traceroute Run a traceroute test
Additional Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
history Display the measurement history of your current session
install-probe Join the Globalping network by running a probe
version Display the version of your installed Globalping CLI
Flags:
-C, --ci disable real-time terminal updates and colors, suitable for CI and
scripting (default false)
-F, --from string specify the probe locations as a comma-separated list; you may use:
- names of continents, regions, countries, US states, cities, or
networks
- [@1 | first, @2 ... @-2, @-1 | last | previous] to run with the probes
from previous measurements in this session
- an ID of a previous measurement to run with its probes
(default "world")
-h, --help help for globalping
-4, --ipv4 resolve names to IPv4 addresses
-6, --ipv6 resolve names to IPv6 addresses
-J, --json output results in JSON format (default false)
--latency output only the latency stats; applicable only to dns, http, and ping
commands (default false)
-L, --limit int define the number of probes to use (default 1)
--share print a link at the end of the results to visualize them online (default
false)
Use "globalping [command] --help" for more information about a command.

Run your first tests

Globalping relies on a community-hosted probe network, enabling you to run network tests from any location with an active probe. The following examples show you through some tests, exploring how to define locations, set limits, and use some command flags.

Filter locations

For example, if you want to run ping from a probe in Seattle that is also part of the Comcast network, run the following:

globalping ping google.com from Comcast+Seattle
> Seattle (WA), US, NA, Comcast Cable Communications, LLC (AS33650)
PING (142.250.217.78) 56(84) bytes of data.
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=1 ttl=58 time=14.0 ms
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=2 ttl=58 time=14.5 ms
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=3 ttl=58 time=15.9 ms
--- ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 402ms
rtt min/avg/max/mdev = 13.985/14.779/15.886/0.807 ms

You can use the + symbol as a filter to select the desired location of the probes more precisely.

Tip

You can mix and match any location type, including countries, continents, cities, US states, regions, ASNs, ISP names, eyeball or data center tags, and cloud region names.

Define multiple locations and basic flags

With the following command, we execute four ping commands at four different locations and obtain the summarized latency metrics for each test as a result:

globalping ping google.com from Amazon,Germany,USA,Dallas --limit 4 --latency
> Seoul, KR, AS, Amazon.com, Inc. (AS16509) (aws-ap-northeast-2)
Min: 33.163 ms
Max: 33.256 ms
Avg: 33.22 ms
> Frankfurt, DE, EU, DE, OVH SAS (AS16276)
Min: 1.221 ms
Max: 1.291 ms
Avg: 1.264 ms
> Chicago (IL), US, NA, Cogent Communications (AS174)
Min: 112.405 ms
Max: 112.686 ms
Avg: 112.528 ms
> Dallas (TX), US, NA, Catalyst Host LLC (AS393336)
Min: 1.579 ms
Max: 1.588 ms
Avg: 1.584 ms

You can select multiple locations for running a command by using a comma , as a delimiter. When doing so, make sure to also specify the number of tests to run with the --limit flag. For example, to run ping from four different locations (as we did in the example above), add --limit 4 to make sure you get one test result per location. Otherwise, the default limit of 1 will be selected, resulting in a random result from one of the four locations.

Finally, you can use the --latency parameter to only get the summarized latency data instead of the full raw output.

Tip

We recommend reading our tips and best practices to learn more about defining locations effectively!

Share results online

Include a link at the bottom of your results using the --share flag to view and share the test results online.

Important

Shareable links and the respective saved measurement results expire after a few weeks, depending on the user type. GitHub Sponsors, for example, enjoy extended result storage.

 globalping dns google.com from gcp-asia-south1 --share
> Mumbai, IN, AS, Google LLC (AS396982) (gcp-asia-south1)
;<<>> DiG 9.16.37-Debian <<>> -t A google.com -p 53 -4 +timeout=3 +tries=2 +nocookie +nsid;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23733;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;google.com. IN A;; ANSWER SECTION:google.com. 300 IN A 142.250.183.206;; Query time: 3 msec;; SERVER: x.x.x.x#53(x.x.x.x);; WHEN: Mon Jul 10 10:38:00 UTC 2023;; MSG SIZE rcvd: 55> View the results online: https://www.jsdelivr.com/globalping?measurement=xrfXUEAOGfzwfHFz

Reselect probes

You can select the same probes used in a previous measurement by passing the measurement ID to the --from flag.

globalping dns google.com from rvasVvKnj48cxNjC
> Mumbai, IN, AS, Google LLC (AS396982) (gcp-asia-south1)
;<<>> DiG 9.16.42-Debian <<>> -t A google.com -p 53 -4 +timeout=3 +tries=2 +nocookie +nosplit +nsid;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42607;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;google.com. IN A;; ANSWER SECTION:google.com. 300 IN A 142.250.199.174;; Query time: 5 msec;; SERVER: x.x.x.x#53(x.x.x.x);; WHEN: Mon Dec 18 10:01:00 UTC 2023;; MSG SIZE rcvd: 55

Reselect probes from measurements in the current session

Use [@1 | first, @2 ... @-2, @-1 | last | previous] to select the probes from previous measurements in the current session.

globalping ping google.com from USA --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from Germany --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from previous --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from @-1 --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from @-2 --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from first --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from @1 --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms

Continuous non-stop measurements

Important

Currently this feature is limited to the ping command

You can use the --infinite flag to continuously ping a host, just like on Linux or MacOS. Note that while it looks like a single measurement, in actuality its multiple measurements from the same probes combined into a single output. This means that eventually you will run out of credits and the test will stop.

globalping ping cdn.jsdelivr.net from Europe --infinite
> London, GB, EU, Psychz Networks (AS40676)
PING cdn.jsdelivr.net (151.101.1.229) 56(84) bytes of data.
64 bytes from 151.101.1.229 (151.101.1.229): icmp_seq=1 ttl=59 time=0.54 ms
64 bytes from 151.101.1.229 (151.101.1.229): icmp_seq=2 ttl=59 time=0.42 ms
^C

If you select multiple probes when using --infinite the output will change to a summary comparison table.

globalping ping cdn.jsdelivr.net from Europe --limit 5 --infinite
Location | Sent | Loss | Last | Min | Avg | Max
London, GB, EU, OVH SAS (AS16276) | 22 | 0.00% | 3.33 ms | 3.07 ms | 3.20 ms | 3.33 ms
Falkenstein, DE, EU, Hetzner Online GmbH (AS24940) | 22 | 0.00% | 5.41 ms | 5.30 ms | 5.78 ms | 13.1 ms
Vienna, AT, EU, EDIS GmbH (AS57169) | 22 | 0.00% | 0.47 ms | 0.46 ms | 0.56 ms | 0.88 ms
Stockholm, SE, EU, The Constant Company, LLC (AS20473) | 22 | 0.00% | 1.03 ms | 0.83 ms | 1.15 ms | 4.66 ms
Madrid, ES, EU, EDGOO NETWORKS LLC (AS47787) | 22 | 0.00% | 0.24 ms | 0.13 ms | 0.26 ms | 0.42 ms
^C

History

You can view the history of your measurements by running the history command.

globalping history
1 | 2024-03-27 11:56:46 | ping google.com
> https://www.jsdelivr.com/globalping?measurement=itcR65tYCqbouXib
- | 2024-03-27 11:57:01 | dns google.com from last
> https://www.jsdelivr.com/globalping?measurement=kWc5UBK9A6G4RUYM
2 | 2024-03-27 11:57:20 | traceroute google.com from New York --limit 2
> https://www.jsdelivr.com/globalping?measurement=Yz7A1UifUonZsC3C
3 | 2024-03-27 11:57:37 | mtr google.com from New York --limit 2
> https://www.jsdelivr.com/globalping?measurement=SX1NBgfDKiabM1vZ
4 | 2024-03-27 11:57:52 | http google.com from London,Belgium --limit 2 --method get --ci
> https://www.jsdelivr.com/globalping?measurement=eclwFSYX0zgU10Cs

Learn about available flags

Most commands have shared and unique flags. We recommend that you familiarize yourself with these so that you can run and automate your network tests in powerful ways.

Simply execute the command you want to learn more about with the --help flag:

globalping [command] --help

Support and Feedback

If you are stuck or want to give us your feedback, please open a new issue.

Development

Please refer to CONTRIBUTING.md for more information.

About

A simple CLI tool to run networking commands remotely from hundreds of globally distributed servers

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Globalping icon Globalping CLI

Access a global network of probes without leaving your console. Benchmark your internet infrastructure, automate uptime and latency monitoring with scripts, or optimize your anycast network – from any location and free of charge. Powered by the Globalping community!

Key features

  • The official command-line interface for the Globalping network
  • Run networking commands from any location in the world
  • Real-time results for all supported commands: ping, mtr, traceroute, DNS resolve, HTTP
  • Includes detailed timings and latency metrics for every test
  • Human-friendly format and output
  • Supports Linux, MacOS, and Windows
  • Auto-updated via all automated installation methods
  • Explore additional Globalping integrations, including our online tools, Slack app, and more

Installation

Install the repository and Globalping CLI using the relevant package manager command from below. This way, you can get future updates by simply running an update with your package manager.

Ubuntu/Debian (deb)

curl -s https://packagecloud.io/install/repositories/jsdelivr/globalping/script.deb.sh | sudo bash
apt install globalping

CentOS/Fedora/Rocky Linux/AlmaLinux (rpm)

curl -s https://packagecloud.io/install/repositories/jsdelivr/globalping/script.rpm.sh | sudo bash
dnf install globalping

Manual installation instructions

MacOS - Homebrew

brew tap jsdelivr/globalping
brew install globalping

Windows - Chocolatey

choco install globalping

Windows - WinGet

winget install globalping

Binary installation

Every new release is compiled into binaries ready to run on most operating systems and provided as assets on GitHub. You can download and execute these binaries directly on your system.

Important

Opting for this installation method means you'll have to repeat this manual process to update the CLI to a newer release!

Explore the available versions.

Updating

If you've installed the Globalping CLI via a package manager, you only need to run the manager's update command to get the latest Globalping CLI version.

Getting started with Globalping CLI

After installing, verify the Globalping CLI is working by running:

globalping --help

The result shows how to use the CLI and which commands and flags are available:

Usage:
globalping [command]
Measurement Commands:
dns Resolve DNS records, similar to the dig command
http Perform a HEAD or GET request to a host
mtr Run a MTR test, which combines traceroute and ping
ping Perform a ping test
traceroute Run a traceroute test
Additional Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
history Display the measurement history of your current session
install-probe Join the Globalping network by running a probe
version Display the version of your installed Globalping CLI
Flags:
-C, --ci disable real-time terminal updates and colors, suitable for CI and
scripting (default false)
-F, --from string specify the probe locations as a comma-separated list; you may use:
- names of continents, regions, countries, US states, cities, or
networks
- [@1 | first, @2 ... @-2, @-1 | last | previous] to run with the probes
from previous measurements in this session
- an ID of a previous measurement to run with its probes
(default "world")
-h, --help help for globalping
-4, --ipv4 resolve names to IPv4 addresses
-6, --ipv6 resolve names to IPv6 addresses
-J, --json output results in JSON format (default false)
--latency output only the latency stats; applicable only to dns, http, and ping
commands (default false)
-L, --limit int define the number of probes to use (default 1)
--share print a link at the end of the results to visualize them online (default
false)
Use "globalping [command] --help" for more information about a command.

Run your first tests

Globalping relies on a community-hosted probe network, enabling you to run network tests from any location with an active probe. The following examples show you through some tests, exploring how to define locations, set limits, and use some command flags.

Filter locations

For example, if you want to run ping from a probe in Seattle that is also part of the Comcast network, run the following:

globalping ping google.com from Comcast+Seattle
> Seattle (WA), US, NA, Comcast Cable Communications, LLC (AS33650)
PING (142.250.217.78) 56(84) bytes of data.
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=1 ttl=58 time=14.0 ms
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=2 ttl=58 time=14.5 ms
64 bytes from sea09s29-in-f14.1e100.net (142.250.217.78): icmp_seq=3 ttl=58 time=15.9 ms
--- ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 402ms
rtt min/avg/max/mdev = 13.985/14.779/15.886/0.807 ms

You can use the + symbol as a filter to select the desired location of the probes more precisely.

Tip

You can mix and match any location type, including countries, continents, cities, US states, regions, ASNs, ISP names, eyeball or data center tags, and cloud region names.

Define multiple locations and basic flags

With the following command, we execute four ping commands at four different locations and obtain the summarized latency metrics for each test as a result:

globalping ping google.com from Amazon,Germany,USA,Dallas --limit 4 --latency
> Seoul, KR, AS, Amazon.com, Inc. (AS16509) (aws-ap-northeast-2)
Min: 33.163 ms
Max: 33.256 ms
Avg: 33.22 ms
> Frankfurt, DE, EU, DE, OVH SAS (AS16276)
Min: 1.221 ms
Max: 1.291 ms
Avg: 1.264 ms
> Chicago (IL), US, NA, Cogent Communications (AS174)
Min: 112.405 ms
Max: 112.686 ms
Avg: 112.528 ms
> Dallas (TX), US, NA, Catalyst Host LLC (AS393336)
Min: 1.579 ms
Max: 1.588 ms
Avg: 1.584 ms

You can select multiple locations for running a command by using a comma , as a delimiter. When doing so, make sure to also specify the number of tests to run with the --limit flag. For example, to run ping from four different locations (as we did in the example above), add --limit 4 to make sure you get one test result per location. Otherwise, the default limit of 1 will be selected, resulting in a random result from one of the four locations.

Finally, you can use the --latency parameter to only get the summarized latency data instead of the full raw output.

Tip

We recommend reading our tips and best practices to learn more about defining locations effectively!

Share results online

Include a link at the bottom of your results using the --share flag to view and share the test results online.

Important

Shareable links and the respective saved measurement results expire after a few weeks, depending on the user type. GitHub Sponsors, for example, enjoy extended result storage.

 globalping dns google.com from gcp-asia-south1 --share
> Mumbai, IN, AS, Google LLC (AS396982) (gcp-asia-south1)
;<<>> DiG 9.16.37-Debian <<>> -t A google.com -p 53 -4 +timeout=3 +tries=2 +nocookie +nsid;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23733;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;google.com. IN A;; ANSWER SECTION:google.com. 300 IN A 142.250.183.206;; Query time: 3 msec;; SERVER: x.x.x.x#53(x.x.x.x);; WHEN: Mon Jul 10 10:38:00 UTC 2023;; MSG SIZE rcvd: 55> View the results online: https://www.jsdelivr.com/globalping?measurement=xrfXUEAOGfzwfHFz

Reselect probes

You can select the same probes used in a previous measurement by passing the measurement ID to the --from flag.

globalping dns google.com from rvasVvKnj48cxNjC
> Mumbai, IN, AS, Google LLC (AS396982) (gcp-asia-south1)
;<<>> DiG 9.16.42-Debian <<>> -t A google.com -p 53 -4 +timeout=3 +tries=2 +nocookie +nosplit +nsid;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42607;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;google.com. IN A;; ANSWER SECTION:google.com. 300 IN A 142.250.199.174;; Query time: 5 msec;; SERVER: x.x.x.x#53(x.x.x.x);; WHEN: Mon Dec 18 10:01:00 UTC 2023;; MSG SIZE rcvd: 55

Reselect probes from measurements in the current session

Use [@1 | first, @2 ... @-2, @-1 | last | previous] to select the probes from previous measurements in the current session.

globalping ping google.com from USA --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from Germany --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from previous --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from @-1 --latency
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
Min: 4.87 ms
Max: 4.936 ms
Avg: 4.911 ms
globalping ping google.com from @-2 --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from first --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms
globalping ping google.com from @1 --latency
> Ashburn (VA), US, NA, Hetzner Online GmbH (AS213230)
Min: 7.314 ms
Max: 7.413 ms
Avg: 7.359 ms

Continuous non-stop measurements

Important

Currently this feature is limited to the ping command

You can use the --infinite flag to continuously ping a host, just like on Linux or MacOS. Note that while it looks like a single measurement, in actuality its multiple measurements from the same probes combined into a single output. This means that eventually you will run out of credits and the test will stop.

globalping ping cdn.jsdelivr.net from Europe --infinite
> London, GB, EU, Psychz Networks (AS40676)
PING cdn.jsdelivr.net (151.101.1.229) 56(84) bytes of data.
64 bytes from 151.101.1.229 (151.101.1.229): icmp_seq=1 ttl=59 time=0.54 ms
64 bytes from 151.101.1.229 (151.101.1.229): icmp_seq=2 ttl=59 time=0.42 ms
^C

If you select multiple probes when using --infinite the output will change to a summary comparison table.

globalping ping cdn.jsdelivr.net from Europe --limit 5 --infinite
Location | Sent | Loss | Last | Min | Avg | Max
London, GB, EU, OVH SAS (AS16276) | 22 | 0.00% | 3.33 ms | 3.07 ms | 3.20 ms | 3.33 ms
Falkenstein, DE, EU, Hetzner Online GmbH (AS24940) | 22 | 0.00% | 5.41 ms | 5.30 ms | 5.78 ms | 13.1 ms
Vienna, AT, EU, EDIS GmbH (AS57169) | 22 | 0.00% | 0.47 ms | 0.46 ms | 0.56 ms | 0.88 ms
Stockholm, SE, EU, The Constant Company, LLC (AS20473) | 22 | 0.00% | 1.03 ms | 0.83 ms | 1.15 ms | 4.66 ms
Madrid, ES, EU, EDGOO NETWORKS LLC (AS47787) | 22 | 0.00% | 0.24 ms | 0.13 ms | 0.26 ms | 0.42 ms
^C

History

You can view the history of your measurements by running the history command.

globalping history
1 | 2024-03-27 11:56:46 | ping google.com
> https://www.jsdelivr.com/globalping?measurement=itcR65tYCqbouXib
- | 2024-03-27 11:57:01 | dns google.com from last
> https://www.jsdelivr.com/globalping?measurement=kWc5UBK9A6G4RUYM
2 | 2024-03-27 11:57:20 | traceroute google.com from New York --limit 2
> https://www.jsdelivr.com/globalping?measurement=Yz7A1UifUonZsC3C
3 | 2024-03-27 11:57:37 | mtr google.com from New York --limit 2
> https://www.jsdelivr.com/globalping?measurement=SX1NBgfDKiabM1vZ
4 | 2024-03-27 11:57:52 | http google.com from London,Belgium --limit 2 --method get --ci
> https://www.jsdelivr.com/globalping?measurement=eclwFSYX0zgU10Cs

Learn about available flags

Most commands have shared and unique flags. We recommend that you familiarize yourself with these so that you can run and automate your network tests in powerful ways.

Simply execute the command you want to learn more about with the --help flag:

globalping [command] --help

Support and Feedback

If you are stuck or want to give us your feedback, please open a new issue.

Development

Please refer to CONTRIBUTING.md for more information.

About

A simple CLI tool to run networking commands remotely from hundreds of globally distributed servers

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages