Snake Ping
The idea was, to have a CLI tool, that can run ping tests for you, on all available public looking glasses.
And Listing them all together in a kinda neat sorted table.
Here it is: https://github.com/Ne00n/Snake-Ping
It does need locally installed chromium copy, some things need to be run in a browser like web sockets.
You can edit the path in the config file.
Lemme show you its features.
To Ping from all Nodes located in the Netherlandspython3 snake.py NL 1.1.1.1
Latency Source City Provider ------- ------- ------- ------- 1.16ms lookingHouse Amsterdam Eurobyte 1.20ms lookingHouse Haarlem ua-hosting.company 1.25ms mudfish Amsterdam DigitalOcean 1.25ms pingsx Amsterdam Misaka 1.49ms pingsx Amsterdam 3W Infra 1.49ms lookingHouse Wormer Host Mayo 1.57ms vultr Amsterdam Vultr 1.58ms mudfish Amsterdam Vultr 1 1.79ms lookingHouse Amsterdam BlackHOST 1.86ms lookingHouse Amsterdam HostZealot 1.95ms mudfish Amsterdam Azure 2.29ms pingsx Amsterdam xTom 2.35ms mudfish Amsterdam Psychz 2.44ms lookingHouse Amsterdam Psychz Networks 2.67ms lookingHouse Amsterdam VPSGet 2.68ms lookingHouse Naaldwijk X5X 2.68ms lookingHouse Dronten Hostio Solutions 2.69ms lookingHouse Roosendaal HostSailor 2.71ms lookingHouse Naaldwijk EuroHoster 2.73ms pingsx Dronten Bakker IT 2.76ms mtrsh Dronten Bakker IT 2.77ms lookingHouse Amsterdam AdminVPS 2.79ms lookingHouse Naaldwijk Host-UA 2.86ms lookingHouse Dronten LiteServer B.V. 3.04ms lookingHouse Naaldwijk IncogNet 3.06ms lookingHouse Lelystad Cloudwebservices 3.27ms mudfish Amsterdam Starry 3.32ms mtrsh Steenbergen Silent Ghost 3.43ms lookingHouse Meppel VDS.SH 3.44ms lookingHouse Amsterdam Shock Hosting 3.54ms lookingHouse Amsterdam AltusHost 3.64ms mudfish Amsterdam RamNode 3.77ms pingpe Nuland WeservIT/RamNode 3.79ms lookingHouse Meppel KVMka 3.81ms lookingHouse Dronten HyperHost 3.82ms lookingHouse Meppel HOSTLIFE 4.00ms dnstools Netherlands n/a 4.12ms lookingHouse Dronten ITL DC 4.33ms lookingHouse Dronten Serv-Tech 4.43ms lookingHouse Meppel MGNHost 4.51ms lookingHouse Meppel VDSina 4.52ms lookingHouse Amsterdam BlueVPS 4.53ms mudfish Amsterdam Google 4.54ms mtrsh Eemshaven Google 4.68ms lookingHouse Dronten FOXCLOUD 4.79ms lookingHouse Apeldoorn Intersect.host 4.83ms lookingHouse Meppel WebHOST1 4.87ms lookingHouse Lelystad Free Range Cloud 4.87ms mudfish Amsterdam VPS2day 4.91ms lookingHouse Meppel PQ.Hosting 6.87ms pingsx Amsterdam HostHatch 7.13ms lookingHouse Amsterdam HostHatch 7.68ms lookingHouse Meppel EuroHoster 8.93ms pingsx Lelystad Hostslick 9.63ms mtrsh Amsterdam Anexia 15.28ms pingpe Amsterdam Online.net 16.86ms pingsx Amsterdam Scaleway 28.19ms lookingHouse Delft Zomro 32.19ms lookingHouse Meppel King Servers 73.49ms mtrsh Amsterdam G-Core Labs 73.60ms lookingHouse Amsterdam G-Core Labs 74.66ms mudfish Amsterdam G-Core Labs
To Ping from all Nodes, worldwidepython3 snake.py any 1.1.1.1
Latency Source City Provider ------- ------- ------- ------- 0.25ms pingsx Vienna HostHatch 0.28ms pingsx Kyiv Misaka 0.30ms dnstools Austria n/a 0.30ms dnstools Taiwan n/a 0.30ms pingsx Dublin Misaka 0.30ms pingsx Sofia Melbicom 0.30ms pingsx Istanbul G-Core 0.34ms pingsx Johannesburg Misaka 0.35ms pingsx Kyiv G-Core 0.36ms pingsx Pittsburgh TeraSwitch 0.40ms dnstools Perth n/a 0.40ms pingsx North Kansas City Misaka 0.40ms pingsx Miami G-Core 0.40ms pingsx Luxembourg G-core 0.44ms pingsx Vienna Alwyzon 0.45ms pingsx Bucharest G-Core 0.46ms pingsx Ashburn Misaka 0.48ms pingsx Chicago G-Core 0.50ms dnstools Japan n/a 0.52ms pingsx Frankfurt AkkoCloud 0.52ms pingsx Tokyo HostHatch 0.58ms pingsx Dublin M247 0.58ms pingsx Sydney xTom 0.59ms pingsx Chicago HostHatch 0.60ms dnstools South Africa n/a 0.60ms dnstools Sweden n/a 0.60ms pingsx Ashburn Hetzner 0.60ms pingsx Tokyo Misaka 0.62ms pingsx Düsseldorf xTom 0.64ms pingsx San Jose Misaka 0.64ms pingsx Marseille Misaka 0.66ms pingsx Warsaw G-core 0.69ms pingsx Reston Misaka 0.70ms pingsx Los Angeles Misaka 0.70ms pingsx Tokyo DMIT 0.71ms pingsx Los Angeles DMIT 0.73ms pingsx San Jose AkkoCloud 0.76ms pingsx Singapore HostHatch 0.79ms pingsx Singapore Melbicom 0.80ms dnstools Italy n/a 0.80ms dnstools Los Angeles n/a 0.80ms pingsx Sydney Linode 0.81ms pingsx Singapore Misaka 0.82ms pingsx Madrid Melbicom 0.85ms pingsx Seattle Misaka 0.87ms pingsx Lithuania Melbicom 0.90ms dnstools Sydney n/a 0.90ms dnstools Switzerland n/a 0.93ms pingsx Tokyo Linode 0.93ms pingsx Mumbai Amazon 0.95ms pingsx Toronto Xenyth 0.95ms pingsx Tokyo xTom 0.98ms pingsx London Misaka 1.00ms dnstools Bulgaria n/a 1.01ms pingsx London xTom 1.07ms pingsx Los Angeles Ignero 1.08ms pingsx Virginia Amazon 1.10ms pingpe Mumbai Vultr 1.11ms pingsx Ashburn G-Core 1.11ms pingsx Frankfurt xTom 1.11ms pingpe Milan Prometeus 1.14ms pingpe Sydney Vultr 1.15ms pingsx Secaucus UpCloud 1.17ms pingsx San Jose xTom 1.17ms pingsx Frankfurt meerfarbig 1.18ms pingpe Riyadh Buzinessware 1.19ms pingsx Amsterdam Misaka 1.20ms pingsx New Taipei City Scloud 1.22ms pingsx Frankfurt Melbicom 1.26ms pingsx Hong Kong Misaka 1.26ms pingsx Auckland Zappie Host 1.27ms pingsx Moscow G-core 1.32ms pingsx Boston SmartHost 1.33ms pingsx Hong Kong Kamatera 1.36ms pingsx Secaucus Misaka 1.36ms pingsx Singapore BGPTO 1.36ms pingsx Hong Kong DMIT 1.37ms pingsx Singapore Amazon 1.38ms pingsx Toronto Kamatera 1.39ms pingsx Secaucus G-Core 1.40ms dnstools New Zealand n/a 1.50ms dnstools Singapore n/a 1.50ms pingsx Amsterdam 3W Infra 1.51ms pingsx Hong Kong xTom 1.53ms pingsx Frankfurt UPC 1.54ms pingsx Tokyo BGPTO 1.58ms pingsx Tukwila xTom 1.60ms pingsx Bangkok Scloud 1.61ms pingsx Moscow Misaka 1.65ms pingsx São Paulo Misaka 1.67ms pingpe n/a Digital Ocean 1.88ms pingpe Atlanta 55 Marietta/RamNode 1.89ms pingsx Seoul Moack 1.90ms dnstools Hong Kong n/a 1.90ms dnstools New York n/a 1.93ms pingsx Santa Clara G-Core 2.01ms pingsx Osaka xTom 2.04ms pingsx Moscow Melbicom 2.04ms pingpe Vint Hill OVH 2.07ms pingpe Tokyo Vultr 2.15ms pingpe Fremont Hurricane FMT2 2.16ms pingpe Fremont Linode 2.17ms pingsx Dallas LSN 2.21ms pingpe New York Telehouse/RamNode 2.22ms pingpe Chicago Cogent 2.29ms pingsx Amsterdam xTom 2.40ms dnstools Poland n/a 2.40ms dnstools Dallas n/a 2.42ms pingpe Los Angeles Vultr 2.48ms pingsx New York xTom 2.48ms pingpe Denver Cogent 2.79ms pingsx Hong Kong BGPTO 2.82ms pingsx Dronten Bakker IT 3.50ms dnstools London n/a 3.60ms dnstools Norway n/a 3.60ms dnstools Netherlands n/a 3.71ms pingpe San Francisco Digital Ocean 3.79ms pingpe Nuland WeservIT/RamNode 3.81ms pingpe Limassol CL8 3.86ms pingpe Paris Online.net 4.10ms pingsx Nuremberg Hetzner 4.37ms pingpe Sandefjord Terrahost 4.51ms pingpe Taichung Google 5.44ms pingpe Nuremberg Hetzner 5.47ms pingpe Riyadh Buzinessware-2 5.50ms dnstools Germany n/a 5.60ms pingsx Falkenstein Hetzner 5.70ms dnstools France n/a 6.02ms pingpe London Cogent 6.08ms pingsx Zurich Misaka 6.45ms pingsx Riga Melbicom 6.89ms pingsx Amsterdam HostHatch 7.45ms pingpe Dallas Softlayer 7.66ms pingsx Madrid Misaka 7.84ms pingpe Seattle Google 8.11ms pingsx Montreal Amazon 8.26ms pingsx Las Vegas BuyVM 8.50ms pingpe Montreal OVH 8.98ms pingsx Lelystad Hostslick 10.18ms pingsx Oregon Amazon 10.88ms pingsx Saint Petersburg G-core 11.24ms pingsx El Marqués G-Core 11.35ms pingsx Tampa SpearwareNetworks 11.56ms pingsx Chișinău G-Core 12.00ms dnstools Canada n/a 13.21ms pingsx Samara G-core 13.80ms dnstools Kansas City n/a 14.65ms pingpe Amsterdam Online.net 16.62ms pingsx Amsterdam Scaleway 16.70ms dnstools Finland n/a 17.12ms pingpe Bursa Oneprovider 17.40ms pingsx Helsinki Hetzner 17.55ms pingsx Manila Scloud 21.00ms dnstools Chile n/a 21.85ms pingsx Ho Chi Minh City Scloud 24.94ms pingpe Quanzhou China Telecom CN2 25.60ms dnstools Estonia n/a 25.65ms pingsx Warsaw UpCloud 25.80ms pingsx Tallinn xTom 26.99ms pingpe Bengaluru Digital Ocean 30.99ms pingsx Krasnodar G-core 31.27ms pingsx Warsaw Melbicom 41.16ms pingpe Cairo Binaryracks 41.24ms pingsx Novosibirsk G-Core 45.89ms pingsx Yekaterinburg G-Core 47.15ms pingsx Tel Aviv Kamatera 48.93ms pingpe Tel Aviv Oneprovider 50.01ms pingsx Almaty G-Core 51.65ms pingsx Krasnoyarsk G-Core 53.98ms pingsx Tel Aviv G-Core 60.70ms pingpe Vancouver Shaw 63.02ms pingpe Riyadh Cloudsigma 76.11ms pingsx Lagos Scloud 86.10ms dnstools Russia n/a 93.70ms dnstools Nigeria n/a 94.09ms pingpe Lagos Terrahost 101.58ms pingsx Khabarovsk Misaka 102.42ms pingsx Lagos Misaka 108.03ms pingsx Vladivostok G-Core 110.86ms pingpe Dubai Buzinessware-2 120.37ms pingpe Tehran Green Web 135.35ms pingpe Shanghai Aliyun 142.38ms pingsx Shanghai Ucloud 149.89ms pingsx Beijing Ucloud 153.95ms pingpe Beijing Aliyun 155.18ms pingsx Shanghai China Telecom 161.10ms pingsx Qingdao Alibaba Cloud 170.68ms pingpe Hangzhou Aliyun 170.72ms pingsx Chengdu Alibaba Cloud 173.27ms pingpe Jiangsu China Unicom 184.60ms pingpe Qingdao Aliyun 205.03ms pingpe Jiangsu China Mobile 225.37ms pingpe Dubai Bamboozle
To find the lowest route in-between 2 Servers in 2 different countriespython3 snake.py UK,NL compare
Not going to post this output, would be way to long.
Anyway, may someone find it helpful.
Comments
That's pretty neat, thank you!
Been looking for something like this for a long time! Thank you.
Added a new plugin, telephone.
Fetches source data from https://github.com/Ne00n/Looking-Glass-2
Should now include some looking glasses from providers directly.
However does not include the City info yet, need to patch that later.
Free NAT KVM | Free NAT LXC
I disabled mtr.sh and added mtr.tools, so it should work fine again.
Free NAT KVM | Free NAT LXC
Nice!
I sometimes worry that I'm so correct in all I say, that there might be something wrong with me
It will be more helpful for me. It keeps stucking at this
Snake-Ping
Running mtr.tools
Running ping.sx
Running ping.pe
Running mudfish
Running Vultr
Done Vultr done in 4.4s
Running telephone
Running dnstools.ws
Retrying https://looking.house/index.php
Retrying https://looking.house/index.php
Done telephone done in 73.25s
Retrying https://looking.house/index.php
Retrying https://looking.house/index.php
concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
File "/usr/lib/python3.8/concurrent/futures/process.py", line 239, in _process_worker
r = call_item.fn(*call_item.args, **call_item.kwargs)
File "/usr/lib/python3.8/concurrent/futures/process.py", line 198, in _process_chunk
return [fn(*args) for args in chunk]
File "/usr/lib/python3.8/concurrent/futures/process.py", line 198, in
return [fn(*args) for args in chunk]
File "/root/Snake-Ping/Plugins/base.py", line 49, in run
return myInstance.engage(data['origin'],data['target'])
File "/root/Snake-Ping/Plugins/mtrtools.py", line 64, in engage
html = asyncio.run(self.browse(target,origin))
File "/usr/lib/python3.8/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
return future.result()
File "/root/Snake-Ping/Plugins/mtrtools.py", line 19, in browse
browser = await launch(headless=True,executablePath=self.config['executablePath'])
File "/usr/local/lib/python3.8/dist-packages/pyppeteer/launcher.py", line 307, in launch
return await Launcher(options, **kwargs).launch()
File "/usr/local/lib/python3.8/dist-packages/pyppeteer/launcher.py", line 168, in launch
self.browserWSEndpoint = get_ws_endpoint(self.url)
File "/usr/local/lib/python3.8/dist-packages/pyppeteer/launcher.py", line 227, in get_ws_endpoint
raise BrowserError('Browser closed unexpectedly:\n')
pyppeteer.errors.BrowserError: Browser closed unexpectedly:
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "snake.py", line 64, in
for data in results:
File "/usr/lib/python3.8/concurrent/futures/process.py", line 484, in _chain_from_iterable_of_lists
for element in iterable:
File "/usr/lib/python3.8/concurrent/futures/_base.py", line 619, in result_iterator
yield fs.pop().result()
File "/usr/lib/python3.8/concurrent/futures/_base.py", line 437, in result
return self.__get_result()
File "/usr/lib/python3.8/concurrent/futures/_base.py", line 389, in __get_result
raise self._exception
pyppeteer.errors.BrowserError: Browser closed unexpectedly:
root@IM-Main:~/Snake-Ping# Retrying https://looking.house/index.php
usr/lib/python3.8/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
return future.result()
File "/root/Snake-Ping/Plugins/mtrtools.py", line 19, in browse
browser = await launch(headless=True,executablePath=self.config['executablePath'])
File "/usr/local/lib/python3.8/dist-packages/pyppeteer/launcher.py", line 307, in launch
return await Launcher(options, **kwargs).launch()
File "/usr/local/lib/python3.8/dist-packages/pyppeteer/launcher.py", line 168, in launch
self.browserWSEndpoint = get_ws_endpoint(self.url)
File "/usr/local/lib/python3.8/dist-packages/pyppeteer/launcher.py", line 227, in get_ws_endpoint
raise BrowserError('Browser closed unexpectedly:\n')
pyppeteer.errors.BrowserError: Browser closed unexpectedly:
"""
The above exception was the direct cause of the following exception:Retrying: command not found
You have to use a recent Chromium Version, 100+, if it still crashes lemme know.
Free NAT KVM | Free NAT LXC
I am using Chromium 103.0.5060.53 snap
And it is crashing
Possibly this one "Retrying https://looking.house/index.php", I did not really test it if single websites are not reachable.
Try to disable the Plugin or investigate why looking.house is down for you.
When I got time, I will check the Code.
Free NAT KVM | Free NAT LXC
Disabled the looking.house and ran the command, but still the same error.
Can't reproduce it, what did you ran specifically?
Free NAT KVM | Free NAT LXC
python3 snake.py any domain.com
Works for me, do you have any DNS or connection issues?
Free NAT KVM | Free NAT LXC
Nope, I dont have any DNS issue. Using Ubuntu 20.04.