Open-source release: pipeline code, raw logs, derived data, licences, tests
Adds src/ (scripts, raw measurement logs, derived data, report source), tests/, LICENSE (MIT, code) and LICENSE-DATA.md (CC BY 4.0 for the survey's data; third-party terms). The report is updated to the current site; the v1 and v2 data hand-off files are unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 Cable Latency Survey contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
This licence covers the code (src/*.py, src/*.sh, src/web/template.html,
|
||||
tests/). Data is covered by LICENSE-DATA.md.
|
||||
@@ -0,0 +1,32 @@
|
||||
# Data licences
|
||||
|
||||
## Measurements and derived data: CC BY 4.0
|
||||
|
||||
The measurements made for this survey and the data derived from them are
|
||||
licensed under the Creative Commons Attribution 4.0 International licence
|
||||
(https://creativecommons.org/licenses/by/4.0/), except for the third-party
|
||||
portions listed below. This covers:
|
||||
|
||||
- `src/data/` (Globalping results, Vultr and residential logs, routes, fits,
|
||||
network attribution);
|
||||
- `cable_latency_survey_data.json`, `cable_latency_survey_data_v2.json`;
|
||||
- `cable_latency_survey_report.html` and `src/site/index.html`.
|
||||
|
||||
Attribution: *Cable Latency Survey (2026), https://pingstats.aethercosmology.com*.
|
||||
|
||||
## Third-party data
|
||||
|
||||
| Source | Where it appears | Terms |
|
||||
|---|---|---|
|
||||
| TeleGeography Submarine Cable Map | Cable routes, landing points and published lengths: `cables`, `cable_geometry`, `cable_routes` and the cable-route distances in the hand-off files; `src/data/cables.json`, `src/data/network.json`, the cable layer of the report. Raw files are not redistributed (`src/fetch_raw.sh`). | © TeleGeography. Their former public data repository licensed this data under CC BY-NC-SA 3.0 (attribution, non-commercial, share-alike); TeleGeography now licenses the raw data commercially. Use these portions non-commercially, with attribution, and check TeleGeography's current terms before any other use. |
|
||||
| WonderNetwork | Per-pair statistics from the 2020-07-19/20 ping archive: `src/data/wn_clean.json`, `src/data/wn_pairs_all.json`, the `wondernetwork` records of the hand-off. The archive itself is not redistributed. | © WonderNetwork; public archive at `wp-public-data.s3.amazonaws.com/pings/`; WonderNetwork's terms apply. |
|
||||
| RIPE Atlas (RIPE NCC) | Anchor metadata (`src/raw/ripe_anchors*.json`), traceroute results (`src/data/trace.json`, `src/raw/trace/`). | RIPE NCC terms for RIPE Atlas data. Attribution: RIPE Atlas, RIPE NCC. |
|
||||
| RIPEstat (RIPE NCC) | RPKI validation results, `src/data/rpki.json`. | RIPE NCC terms. |
|
||||
| Globalping (jsDelivr) | Probe results in `src/data/live_*.json`; probe list `src/raw/gp_probes.json`. | Globalping terms. Attribution: Globalping. |
|
||||
| GeoNames | `src/raw/geonames/cities15000.txt` | CC BY 4.0, https://www.geonames.org |
|
||||
| Natural Earth, via world-atlas | `src/raw/geo/land-110m.json` | Natural Earth: public domain. world-atlas: ISC. |
|
||||
| d3 | `src/raw/lib/d3.min.js`, embedded in the report | ISC, Mike Bostock. |
|
||||
| RouteViews / CAIDA prefix2as, RIPE NCC AS names, PeeringDB | Inputs to `src/asmap.py`; not redistributed. Derived attribution in `src/data/asmap.json`. | Respective terms. |
|
||||
|
||||
The residential connection's address and location are not included anywhere
|
||||
in this repository.
|
||||
@@ -1,19 +1,71 @@
|
||||
# Cable latency survey — data hand-off
|
||||
# Cable Latency Survey
|
||||
|
||||
Deep-sea cable latency survey: measured latencies between sites, published cable geometry, and the routed path for every pair on four map models.
|
||||
Measured round-trip times between cities, compared with the minimum
|
||||
propagation time along submarine-cable routes on four models of the Earth's
|
||||
surface: a sphere, a North-pole azimuthal equidistant (AE) map, an AE map
|
||||
centred on 0°N 0°E ("dual-pole"), and a flat Mercator map. A round-trip time
|
||||
below the fibre propagation floor along a model's route is inconsistent with
|
||||
that model.
|
||||
|
||||
| File | Size | What it is |
|
||||
- Report: https://pingstats.aethercosmology.com (also `cable_latency_survey_report.html`, a single file that works offline)
|
||||
- Code: MIT (`LICENSE`). Measurements and derived data: CC BY 4.0, with third-party terms (`LICENSE-DATA.md`).
|
||||
|
||||
## Files
|
||||
|
||||
| Path | Contents |
|
||||
|---|---|
|
||||
| `cable_latency_survey_data_v2.json` | **Current data hand-off.** 29,341 measurements, 305 sites, every routed path and cable geometry (`[lon, lat]`). The `revision` block lists the changes from v1. |
|
||||
| `cable_latency_survey_data.json` | v1: the same measurements without coordinates. Kept for reference. |
|
||||
| `cable_latency_survey_report.html` | The report, identical to the website. |
|
||||
| `src/` | Pipeline code, raw logs and derived data (below). |
|
||||
| `tests/` | Headless-browser checks of the report (`tests/run.sh`). |
|
||||
|
||||
### Raw measurements
|
||||
|
||||
| Source | File |
|
||||
|---|---|
|
||||
| Globalping probes, runs 1 and 2 | `src/data/live_20261023T1812Z.json`, `src/data/live_run2.json` (each result with its Globalping measurement ID) |
|
||||
| Vultr servers (8, 2026-10-23 21:23–22:30 UTC) | `src/data/vps/<server>/ping.log`, `src/data/vps/<server>/mtr.log` (traceroutes) |
|
||||
| Residential connection, Michigan | `src/data/home/ping.log` (location withheld) |
|
||||
| RIPE Atlas sea crossings | `src/data/trace.json` (hops, timings, measurement and probe IDs) |
|
||||
| WonderNetwork, 2020-07-19/20 | per-pair statistics `src/data/wn_clean.json`; archive downloaded by `src/fetch_raw.sh` |
|
||||
|
||||
## Pipeline
|
||||
|
||||
Run from `src/`. The measurement steps contact external services and are not
|
||||
needed to rebuild the report.
|
||||
|
||||
| Step | Script | Output |
|
||||
|---|---|---|
|
||||
| `cable_latency_survey_data_v2.json` | 39.9 MB | **Current.** 29,341 measurements, 305 sites. Adds `cable_geometry` (608 cables, drawn routes and landing points as `[lon, lat]`) and `cable_routes` (the point-by-point path behind every cable-route distance, each step tagged cable / cable-to-shore / overland). Replaces v1; the `revision` block lists what changed. |
|
||||
| `cable_latency_survey_data.json` | 20.4 MB | v1. Same measurements, cable lengths and route names, but no coordinates. Kept for reference. |
|
||||
| `cable_latency_survey_report.html` | 2.6 MB | Self-contained report. Open in a browser. |
|
||||
| Distance on each model, constants | `models.py` | — |
|
||||
| Globalping measurements | `measure.py` | `data/live_*.json` |
|
||||
| Vultr servers: create, measure, collect, delete | `vps.py` | `data/vps/` |
|
||||
| Vultr logs to measurements | `vps_analyze.py` | `data/vps_cells.json` |
|
||||
| WonderNetwork archive: statistics, mislocated servers | `analyze_wn.py` | `data/wn_clean.json` |
|
||||
| Published cable lengths on each model | `cables.py` | `data/cables.json` |
|
||||
| RIPE Atlas sea crossings | `trace.py` | `data/trace.json` |
|
||||
| Cable-and-land routing on each model | `network.py` | `data/network.json` |
|
||||
| Best attainable flat arrangements | `flatfit.py` | `data/flatfit.json` |
|
||||
| Network attribution from public BGP data | `asmap.py` | `data/asmap.json`, `data/rpki.json` |
|
||||
| Shape fit without positions | `pingmap.py` | `data/pingmap.json` |
|
||||
| North-pole AE longitude solver (hand-off only) | `solver.py` | `data/solver.json` |
|
||||
| Report | `build.py` | `site/index.html`, `web/index.html` |
|
||||
| Data hand-off | `export.py` | `handoff/cable_latency_survey_data_v2.json` |
|
||||
|
||||
Top-level keys in the v2 JSON: `dataset`, `generated_utc`, `revision`, `constants`, `maps`, `test`, `sources`, `summary`, `sites`, `excluded`, `cable_crossings`, `cables`, `cable_geometry`, `cable_routes`, `flat_map_solver`, `measurements`.
|
||||
## Reproduce
|
||||
|
||||
Every stored distance in v2 recomputes from the coordinates in the file to within 0.05 km. Overland legs are straight lines and may cross water; that only shortens routes.
|
||||
|
||||
Download a single file with the download button on its page, or clone:
|
||||
|
||||
```
|
||||
```bash
|
||||
git clone https://git.aethercosmology.com/toby/cable-latency-survey.git
|
||||
cd cable-latency-survey/src
|
||||
pip install -r requirements.txt
|
||||
./fetch_raw.sh # TeleGeography, WonderNetwork and BGP inputs (not redistributed)
|
||||
python3 build.py # the report, from the files in data/
|
||||
python3 flatfit.py # flat arrangements
|
||||
python3 export.py # the data hand-off
|
||||
```
|
||||
|
||||
`build.py` needs only `data/` and the TeleGeography files; it does not contact
|
||||
any measurement service. `fetch_raw.sh` reports whether the TeleGeography data
|
||||
it downloads matches the snapshot used (`src/raw/tg.sha256`).
|
||||
|
||||
Browser checks: `cd tests && npm install && CH=/path/to/chromium ./run.sh`.
|
||||
|
||||
+256
-115
File diff suppressed because one or more lines are too long
@@ -0,0 +1,93 @@
|
||||
"""Reduce WonderNetwork's public one-day ping dump (2020-07-19/20) to one
|
||||
robust RTT floor per city pair and test it against every model.
|
||||
|
||||
RTT used = median of the per-run minimums (each run = 30 pings). Using the
|
||||
median instead of the single fastest ping discards glitch runs and errs in the
|
||||
flat models' favour (a higher RTT is easier for a long flat route to explain).
|
||||
"""
|
||||
import csv, gzip, json, statistics, sys
|
||||
from collections import defaultdict
|
||||
from models import MODELS, distance, floor_ms, C_FIBER, C_VACUUM
|
||||
|
||||
RAW = "raw/wn"
|
||||
SLACK_KM = 200 # each endpoint may sit up to 100 km from its listed coordinates
|
||||
SLACK_MS = 1.0 # timer / queueing jitter allowance
|
||||
|
||||
servers = {}
|
||||
with open(f"{RAW}/servers-2020-07-19.csv") as f:
|
||||
for r in csv.DictReader(f):
|
||||
servers[r["id"]] = dict(name=r["title"], country=r["country"],
|
||||
lat=float(r["latitude"]), lon=float(r["longitude"]))
|
||||
|
||||
runs = defaultdict(list)
|
||||
avgs = defaultdict(list)
|
||||
with gzip.open(f"{RAW}/pings-2020-07-19-2020-07-20.csv.gz", "rt") as f:
|
||||
for r in csv.DictReader(f):
|
||||
s, d = r["source"], r["destination"]
|
||||
if s == d or s not in servers or d not in servers:
|
||||
continue
|
||||
try:
|
||||
mn, av = float(r["min"]), float(r["avg"])
|
||||
except ValueError:
|
||||
continue
|
||||
if mn > 0:
|
||||
key = tuple(sorted((s, d), key=int))
|
||||
runs[key].append(mn)
|
||||
avgs[key].append(av)
|
||||
|
||||
|
||||
def impossible(rtt, km, speed=C_FIBER):
|
||||
return rtt + SLACK_MS < floor_ms(max(0.0, km - SLACK_KM), speed)
|
||||
|
||||
|
||||
pairs = []
|
||||
for (a, b), mins in runs.items():
|
||||
if len(mins) < 5:
|
||||
continue
|
||||
A, B = servers[a], servers[b]
|
||||
pa, pb = (A["lat"], A["lon"]), (B["lat"], B["lon"])
|
||||
row = dict(a=a, b=b, n=len(mins), rtt=round(statistics.median(mins), 2),
|
||||
best=round(min(mins), 2), avg=round(statistics.median(avgs[(a, b)]), 2))
|
||||
for m in MODELS:
|
||||
row[m] = round(distance(m, pa, pb), 1)
|
||||
pairs.append(row)
|
||||
|
||||
# A pair that is impossible on the globe is impossible on every flat map too
|
||||
# (all three flat maps stretch every distance relative to the globe), so one
|
||||
# of the two servers' advertised location must be wrong. Greedily drop the
|
||||
# server implicated most often; when only 1:1 conflicts remain we can't tell
|
||||
# which side is lying, so both go.
|
||||
mislocated = set()
|
||||
while True:
|
||||
bad = [r for r in pairs if r["a"] not in mislocated and r["b"] not in mislocated
|
||||
and impossible(r["rtt"], r["globe"])]
|
||||
if not bad:
|
||||
break
|
||||
count = defaultdict(int)
|
||||
for r in bad:
|
||||
count[r["a"]] += 1
|
||||
count[r["b"]] += 1
|
||||
worst = max(count.values())
|
||||
mislocated |= {s for s, n in count.items() if n == worst} if worst == 1 else {max(count, key=count.get)}
|
||||
clean = [r for r in pairs if r["a"] not in mislocated and r["b"] not in mislocated]
|
||||
|
||||
|
||||
def report(rows, label):
|
||||
print(f"\n{label}: {len(rows)} pairs")
|
||||
for m in MODELS:
|
||||
fib = sum(impossible(r["rtt"], r[m]) for r in rows)
|
||||
vac = sum(impossible(r["rtt"], r[m], C_VACUUM) for r in rows)
|
||||
print(f" {m:9s} beats light-in-fibre: {fib:5d} ({fib/len(rows):6.2%}) beats light-in-vacuum: {vac:5d} ({vac/len(rows):6.2%})")
|
||||
|
||||
|
||||
print("mislocated servers dropped:", ", ".join(f"{servers[s]['name']} ({servers[s]['country']})" for s in sorted(mislocated, key=int)))
|
||||
report(pairs, "ALL pairs")
|
||||
report(clean, "CLEAN pairs")
|
||||
south = [r for r in clean if servers[r["a"]]["lat"] < 0 and servers[r["b"]]["lat"] < 0]
|
||||
report(south, "CLEAN, both ends in southern hemisphere")
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
used = {s for r in clean for s in (r["a"], r["b"])}
|
||||
json.dump(dict(servers={k: v for k, v in servers.items() if k in used},
|
||||
mislocated=[servers[s] for s in sorted(mislocated, key=int)],
|
||||
pairs=clean), open(sys.argv[1], "w"))
|
||||
+213
@@ -0,0 +1,213 @@
|
||||
"""Which networks carried the measurements, from public BGP data.
|
||||
|
||||
Every IP address seen as an endpoint or a traceroute hop is mapped to the
|
||||
network (AS) that announced its prefix in the public BGP table on the day of
|
||||
the measurements: RouteViews route-views2 snapshot 2026-10-23 02:00 UTC
|
||||
(CAIDA prefix2as), longest-prefix match. AS names: RIPE NCC asn.txt.
|
||||
|
||||
Traceroute hops come from our 8 Vultr servers (mtr, every 30 minutes, to
|
||||
every other server and anchor) and from the RIPE anchor-mesh crossings.
|
||||
Addresses absent from the table are matched to internet exchange point
|
||||
prefixes in PeeringDB. Endpoint announcements are checked against RPKI
|
||||
(RIPEstat rpki-validation; cached in data/rpki.json). For each sea crossing,
|
||||
the nearest announced hop on either side of the jump is compared with the
|
||||
cable's owners as listed by TeleGeography.
|
||||
|
||||
Inputs (not redistributed; fetch_raw.sh): raw/bgp/routeviews-rv2-20261023-0200.pfx2as.gz,
|
||||
raw/bgp/asn.txt, raw/bgp/pdb_ixpfx.json, pdb_ixlan.json, pdb_ix.json.
|
||||
|
||||
python3 asmap.py -> data/asmap.json
|
||||
"""
|
||||
import glob, gzip, ipaddress, json, os, re, statistics, time, urllib.request
|
||||
from collections import Counter, defaultdict
|
||||
|
||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||
P = lambda *a: os.path.join(HERE, *a)
|
||||
SNAP = "routeviews-rv2-20261023-0200.pfx2as.gz"
|
||||
|
||||
# ---------- BGP table: prefix -> origin AS ----------
|
||||
table = defaultdict(dict) # prefix length -> {network int: origin}
|
||||
for line in gzip.open(P("raw/bgp", SNAP), "rt"):
|
||||
net, plen, origin = line.split()
|
||||
table[int(plen)][int(ipaddress.IPv4Address(net))] = origin # "_" joins multi-origin, "," AS sets
|
||||
names = {}
|
||||
for line in open(P("raw/bgp/asn.txt"), encoding="utf-8", errors="replace"):
|
||||
k, _, v = line.strip().partition(" ")
|
||||
if k.isdigit():
|
||||
names[int(k)] = v
|
||||
LENS = sorted(table, reverse=True)
|
||||
|
||||
|
||||
def origin(ip):
|
||||
a = ipaddress.IPv4Address(ip)
|
||||
if a.is_private or a.is_link_local or a in ipaddress.ip_network("100.64.0.0/10"):
|
||||
return None, "private"
|
||||
x = int(a)
|
||||
for L in LENS:
|
||||
o = table[L].get(x >> (32 - L) << (32 - L))
|
||||
if o is not None:
|
||||
return o, f"{ipaddress.IPv4Address(x >> (32 - L) << (32 - L))}/{L}"
|
||||
return None, "not in table"
|
||||
|
||||
|
||||
def asname(o):
|
||||
if o is None:
|
||||
return None
|
||||
first = int(re.split(r"[_,]", o)[0])
|
||||
return names.get(first, "?")
|
||||
|
||||
|
||||
# ---------- traceroutes from our servers ----------
|
||||
HDR = re.compile(r"^## (\S+) (\S+) (\S+)")
|
||||
HOP = re.compile(r"^\s*(\d+)\.\|-- (\S+)\s+([\d.]+)%?\s+(\d+)\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)")
|
||||
traces = []
|
||||
for f in sorted(glob.glob(P("data/vps/*/mtr.log"))):
|
||||
src = os.path.basename(os.path.dirname(f))
|
||||
cur = None
|
||||
for line in open(f):
|
||||
m = HDR.match(line)
|
||||
if m:
|
||||
cur = dict(src=src, time=m.group(1), dst=m.group(2), dst_ip=m.group(3), hops=[])
|
||||
traces.append(cur)
|
||||
continue
|
||||
m = HOP.match(line)
|
||||
if m and cur is not None and m.group(2) != "???":
|
||||
cur["hops"].append(dict(hop=int(m.group(1)), ip=m.group(2), loss=float(m.group(3)), best=float(m.group(7))))
|
||||
crossings = json.load(open(P("data/trace.json")))
|
||||
state = json.load(open(P("data/vps/state.json")))
|
||||
|
||||
ips = Counter()
|
||||
for t in traces:
|
||||
for h in t["hops"]:
|
||||
ips[h["ip"]] += 1
|
||||
for c in crossings:
|
||||
for h in c["hops"]:
|
||||
if h["ip"]:
|
||||
ips[h["ip"]] += 1
|
||||
look = {ip: origin(ip) for ip in ips}
|
||||
|
||||
# AS path seen by each server -> target route (distinct origins in hop order, best-RTT trace)
|
||||
paths = {}
|
||||
for t in traces:
|
||||
seq = []
|
||||
for h in t["hops"]:
|
||||
o, _ = look[h["ip"]]
|
||||
if o and (not seq or seq[-1] != o):
|
||||
seq.append(o)
|
||||
k = (t["src"], t["dst"])
|
||||
paths.setdefault(k, Counter())[tuple(seq)] += 1
|
||||
|
||||
transit = Counter()
|
||||
for t in traces:
|
||||
for o in {look[h["ip"]][0] for h in t["hops"]} - {None}:
|
||||
transit[o] += 1
|
||||
|
||||
# ---------- endpoints ----------
|
||||
d = json.load(open(next(p for p in (P("handoff/cable_latency_survey_data_v2.json"), P("../cable_latency_survey_data_v2.json")) if os.path.exists(p))))
|
||||
endpoints = []
|
||||
for s in d["sites"]:
|
||||
if s["type"] == "ripe_atlas_anchor":
|
||||
o, pfx = origin(s["ip"])
|
||||
endpoints.append(dict(site=s["id"], kind="RIPE anchor", claimed_asn=s["asn"], bgp_origin=o, prefix=pfx, name=asname(o),
|
||||
match=o is not None and str(s["asn"]) in re.split(r"[_,]", o)))
|
||||
elif s["type"] == "vultr_vps":
|
||||
o, pfx = origin(s["ip"])
|
||||
endpoints.append(dict(site=s["id"], kind="our Vultr server", claimed_asn=20473, bgp_origin=o, prefix=pfx, name=asname(o),
|
||||
match=o is not None and "20473" in re.split(r"[_,]", o)))
|
||||
elif s["type"] == "globalping_probe":
|
||||
endpoints.append(dict(site=s["id"], kind="Globalping probe", claimed_asn=s["asn"], network=s["network"], name=names.get(s["asn"])))
|
||||
|
||||
# ---------- exchange points (PeeringDB) for addresses not in the BGP table ----------
|
||||
pdb = {t: json.load(open(P(f"raw/bgp/pdb_{t}.json")))["data"] for t in ("ixpfx", "ixlan", "ix")}
|
||||
ixlan = {x["id"]: x for x in pdb["ixlan"]}
|
||||
ixs = {x["id"]: x for x in pdb["ix"]}
|
||||
ixnets = [(ipaddress.ip_network(p["prefix"]), ixs[ixlan[p["ixlan_id"]]["ix_id"]]) for p in pdb["ixpfx"]
|
||||
if p["protocol"] == "IPv4" and p["ixlan_id"] in ixlan and ixlan[p["ixlan_id"]]["ix_id"] in ixs]
|
||||
ixp_of = {}
|
||||
for ip, (o, pfx) in look.items():
|
||||
if pfx == "not in table":
|
||||
hit = [x for n, x in ixnets if ipaddress.ip_address(ip) in n]
|
||||
if hit:
|
||||
ixp_of[ip] = f"{hit[0]['name']} ({hit[0]['city']}, {hit[0]['country']})"
|
||||
ixp_count = Counter(ixp_of.values())
|
||||
|
||||
# ---------- RPKI for endpoint announcements (cached) ----------
|
||||
rpki_file = P("data/rpki.json")
|
||||
rpki = json.load(open(rpki_file)) if os.path.exists(rpki_file) else {}
|
||||
for e in endpoints:
|
||||
if e.get("bgp_origin"):
|
||||
e["rpki"] = []
|
||||
for o in re.split(r"[_,]", e["bgp_origin"]):
|
||||
k = f"AS{o} {e['prefix']}"
|
||||
if k not in rpki:
|
||||
u = f"https://stat.ripe.net/data/rpki-validation/data.json?resource=AS{o}&prefix={e['prefix']}&sourceapp=cable-latency-survey"
|
||||
for attempt in range(3):
|
||||
try:
|
||||
rpki[k] = json.load(urllib.request.urlopen(u, timeout=30))["data"]["status"]
|
||||
break
|
||||
except Exception:
|
||||
time.sleep(2)
|
||||
time.sleep(0.3)
|
||||
e["rpki"].append(rpki.get(k, "unchecked"))
|
||||
json.dump(rpki, open(rpki_file, "w"), indent=1, sort_keys=True)
|
||||
|
||||
# ---------- sea crossings: networks either side of the jump vs cable owners ----------
|
||||
STOP = {"communications", "new", "zealand", "limited", "ltd", "inc", "the", "cable", "cables", "network", "networks", "telecom", "nz", "group"}
|
||||
tg = {}
|
||||
for f in glob.glob(P("raw/tg/cables/*.json")):
|
||||
c = json.load(open(f))
|
||||
tg[c["id"]] = c
|
||||
xing = []
|
||||
for c in crossings:
|
||||
hops = c["hops"]
|
||||
def nearest(i, step):
|
||||
while 0 <= i < len(hops):
|
||||
o = look.get(hops[i]["ip"], (None, ""))[0] if hops[i]["ip"] else None
|
||||
if o:
|
||||
return hops[i]["hop"], o
|
||||
i += step
|
||||
return None, None
|
||||
hb, ob = nearest(c["before"], -1)
|
||||
ha, oa = nearest(c["after"], 1)
|
||||
owners = (tg.get(c["cable"]) or {}).get("owners") or ""
|
||||
toks = {w for own in owners.split(",") for w in re.findall(r"[a-z0-9]+", own.lower()) if w not in STOP and len(w) > 1}
|
||||
is_owner = lambda o: o is not None and any(re.search(rf"(^|[^a-z0-9]){t}([^a-z0-9]|$)", (asname(o) or "").lower()) for t in toks)
|
||||
xing.append(dict(src=c["src"], dst=c["dst"], cable=c["cable"], owners=owners or None, jump_ms=c["jump"],
|
||||
before=dict(hop=hb, asn=ob, name=asname(ob), owner=is_owner(ob) if owners else None),
|
||||
after=dict(hop=ha, asn=oa, name=asname(oa), owner=is_owner(oa) if owners else None)))
|
||||
|
||||
priv_n = sum(1 for ip in ips if look[ip][1] == "private")
|
||||
out = dict(snapshot=SNAP, ips=len(ips), traces=len(traces),
|
||||
summary=dict(addresses=len(ips), announced=len(ips) - priv_n - sum(1 for ip in ips if look[ip][1] == "not in table"),
|
||||
private=priv_n, unannounced=sum(1 for ip in ips if look[ip][1] == "not in table"), at_exchanges=len(ixp_of),
|
||||
networks=len(transit)),
|
||||
ixps=[dict(name=k, addresses=n) for k, n in ixp_count.most_common()], ixp_of=ixp_of, crossings=xing,
|
||||
lookups={ip: dict(origin=o, prefix=p, name=asname(o), seen=ips[ip]) for ip, (o, p) in look.items()},
|
||||
transit=[dict(asn=o, name=asname(o), traces=n) for o, n in transit.most_common()],
|
||||
endpoints=endpoints,
|
||||
as_paths=[dict(src=k[0], dst=k[1], paths=[dict(path=list(p), traces=n) for p, n in v.most_common()]) for k, v in sorted(paths.items())])
|
||||
json.dump(out, open(P("data/asmap.json"), "w"), indent=1, ensure_ascii=False)
|
||||
|
||||
priv = sum(1 for ip in ips if look[ip][1] == "private")
|
||||
miss = [ip for ip in ips if look[ip][1] == "not in table"]
|
||||
print(f"{len(traces)} server traceroutes + {len(crossings)} RIPE crossings, {len(ips)} distinct hop addresses: "
|
||||
f"{len(ips) - priv - len(miss)} in the BGP table, {priv} private/link-local, {len(miss)} not announced {miss[:8]}")
|
||||
print("\nendpoint check (BGP origin vs claimed network):")
|
||||
for e in endpoints:
|
||||
if "match" in e:
|
||||
print(f" {'ok ' if e['match'] else 'NO '} {e['site']:26s} claimed AS{e['claimed_asn']:<6} BGP AS{e['bgp_origin']:<8} {e['prefix']:18s} {e['name']}")
|
||||
print("\nGlobalping probe networks:")
|
||||
for e in sorted([e for e in endpoints if e["kind"] == "Globalping probe"], key=lambda e: e["site"]):
|
||||
print(f" {e['site']:44s} AS{e['claimed_asn']:<7} {e['network'][:28]:28s} | {(e['name'] or '?')[:50]}")
|
||||
print("\nnetworks on our servers' traceroute paths (traces touching each):")
|
||||
for x in out["transit"]:
|
||||
print(f" AS{x['asn']:<8} {x['traces']:4d} {x['name'][:70]}")
|
||||
print("\nexchange points:", dict(ixp_count))
|
||||
print("rpki:", Counter(s for e in endpoints for s in e.get("rpki", [])))
|
||||
for x in xing:
|
||||
print(" crossing", x["src"], "->", x["dst"], x["cable"], "| owners:", x["owners"], "| before", x["before"], "| after", x["after"])
|
||||
print("\nRIPE crossings: network on each side of the sea jump")
|
||||
for c in crossings:
|
||||
b, a = c["hops"][c["before"]], c["hops"][c["after"]]
|
||||
ob, oa = look.get(b["ip"], (None, ""))[0], look.get(a["ip"], (None, ""))[0]
|
||||
print(f" {c['src_city']:>9s} -> {c['dst_city']:9s} hop {b['hop']} {b['ip']:15s} AS{ob} {(asname(ob) or "-")[:28]:28s} -> hop {a['hop']} {a['ip']:15s} AS{oa} {(asname(oa) or "-")[:28]:28s} jump {c['jump']} ms")
|
||||
+257
@@ -0,0 +1,257 @@
|
||||
"""Assemble web/index.html from web/template.html + data.
|
||||
|
||||
python3 build.py -> web/index.html
|
||||
"""
|
||||
import glob, json, math, os, re
|
||||
from collections import defaultdict
|
||||
from measure import TARGETS
|
||||
|
||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||
P = lambda *a: os.path.join(HERE, *a)
|
||||
|
||||
PROBE_TO_SITE = {"Sao Paulo": "São Paulo"}
|
||||
|
||||
|
||||
def land():
|
||||
"""TopoJSON land-110m -> list of polygons (rings of [lon, lat]), 2 dp."""
|
||||
t = json.load(open(P("raw/geo/land-110m.json")))
|
||||
sx, sy = t["transform"]["scale"]
|
||||
tx, ty = t["transform"]["translate"]
|
||||
arcs = []
|
||||
for arc in t["arcs"]:
|
||||
x = y = 0
|
||||
pts = []
|
||||
for dx, dy in arc:
|
||||
x += dx
|
||||
y += dy
|
||||
pts.append([round(x * sx + tx, 2), round(y * sy + ty, 2)])
|
||||
arcs.append(pts)
|
||||
|
||||
def ring(idx):
|
||||
out = []
|
||||
for i in idx:
|
||||
a = arcs[i] if i >= 0 else arcs[~i][::-1]
|
||||
out.extend(a if not out else a[1:])
|
||||
return out
|
||||
|
||||
polys = []
|
||||
for g in t["objects"]["land"]["geometries"]:
|
||||
ps = g["arcs"] if g["type"] == "MultiPolygon" else [g["arcs"]]
|
||||
for p in ps:
|
||||
polys.append([ring(r) for r in p])
|
||||
return polys
|
||||
|
||||
|
||||
def wonder():
|
||||
d = json.load(open(P("data/wn_clean.json")))
|
||||
ids = sorted(d["servers"], key=int)
|
||||
index = {s: i for i, s in enumerate(ids)}
|
||||
sites = [[d["servers"][s]["name"], d["servers"][s]["country"],
|
||||
round(d["servers"][s]["lat"], 4), round(d["servers"][s]["lon"], 4)] for s in ids]
|
||||
flat = []
|
||||
for r in d["pairs"]:
|
||||
flat += [index[r["a"]], index[r["b"]], round(r["rtt"], 2)]
|
||||
return dict(sites=sites, pairs=flat, dropped=[f"{m['name']} ({m['country']})" for m in d["mislocated"]])
|
||||
|
||||
|
||||
def live():
|
||||
from measure import EXTRA_SITES
|
||||
sites = [[t[0], t[2], t[3], t[4], t[1]] for t in TARGETS] # name, anchor, lat, lon, ip
|
||||
sites += [[n, "vultr-" + n.lower(), la, lo, ""] for n, la, lo in EXTRA_SITES]
|
||||
sidx = {s[0]: i for i, s in enumerate(sites)}
|
||||
runs, cells = [], []
|
||||
for f in sorted(glob.glob(P("data/live_*.json"))):
|
||||
run = json.load(open(f))
|
||||
rn = len(runs)
|
||||
runs.append(dict(started=run["started"], packets=run["packets"], file="data/" + os.path.basename(f)))
|
||||
probe_key = lambda c: (c["src_city"], c["src_network"], c["src_asn"])
|
||||
local = {}
|
||||
for c in run["cells"]:
|
||||
site = PROBE_TO_SITE.get(c["src_city"], c["src_city"])
|
||||
if c["dst_city"] == site and c["min"] is not None:
|
||||
local[probe_key(c)] = c["min"]
|
||||
for c in run["cells"]:
|
||||
src = PROBE_TO_SITE.get(c["src_city"], c["src_city"])
|
||||
loc = local.get(probe_key(c))
|
||||
if c["min"] is None or loc is None or src == c["dst_city"]:
|
||||
continue
|
||||
cells.append([sidx[src], sidx[c["dst_city"]], round(c["min"], 1), round(loc, 1), rn, c["src_network"], c["measurement"]])
|
||||
from measure import ROUTE_ONLY_SITES, HOME_NEAR
|
||||
hf = P("data/home/ping.log") # the home connection in Michigan, pinned to its nearest anchor
|
||||
vstate = json.load(open(P("data/vps/state.json"))) if os.path.exists(P("data/vps/state.json")) else {"nodes": []}
|
||||
vlocal = json.load(open(P("data/vps_cells.json")))["local"] if os.path.exists(P("data/vps_cells.json")) else {}
|
||||
if os.path.exists(hf):
|
||||
rx = re.compile(r"^(\S+) (\S+) (\S+) .*?= ([\d.]+)/")
|
||||
best = {}
|
||||
for line in open(hf):
|
||||
m = rx.match(line)
|
||||
if m:
|
||||
best[m.group(2)] = min(best.get(m.group(2), 1e9), float(m.group(4)))
|
||||
near = {n: best[n] for n, _ in HOME_NEAR if n in best}
|
||||
ref = min(near, key=near.get)
|
||||
rname, rla, rlo = ROUTE_ONLY_SITES[0]
|
||||
sites.append([rname.replace("(home reference)", "(residential reference)"), ref, rla, rlo, ""]) # display name; data files keep the original
|
||||
sidx[rname] = len(sites) - 1
|
||||
rn = len(runs)
|
||||
runs.append(dict(started=open(hf).readline().split()[0], packets=20, source="home", file="data/home/ping.log"))
|
||||
fq_city = {t[2]: t[0] for t in TARGETS}
|
||||
vcity = {"syd": "Sydney", "mel": "Melbourne", "jnb": "Johannesburg", "scl": "Santiago", "sao": "São Paulo",
|
||||
"lax": "Los Angeles", "icn": "Seoul", "hnl": "Honolulu"}
|
||||
for tgt, rtt in best.items():
|
||||
if tgt in dict(HOME_NEAR):
|
||||
continue
|
||||
city = fq_city.get(tgt) or vcity.get(tgt)
|
||||
if city in sidx:
|
||||
cells.append([sidx[rname], sidx[city], round(rtt, 1), round(near[ref] + vlocal.get(tgt, 0.0), 1), rn, "home connection, Michigan", "home"])
|
||||
vf = P("data/vps_cells.json") # our own Vultr servers, as one more run
|
||||
if os.path.exists(vf):
|
||||
v = json.load(open(vf))
|
||||
rn = len(runs)
|
||||
st = min(n.get("started", "") for n in v["nodes"])
|
||||
ends = [ln.split()[0] for f in glob.glob(P("data/vps/*/ping.log")) for ln in open(f) if ln.strip()]
|
||||
runs.append(dict(started=st, ended=max(ends), rounds=max(c["runs"] for c in v["cells"]), packets=20, source="vultr", file="data/vps/"))
|
||||
for c in v["cells"]:
|
||||
if c["a"] in sidx and c["b"] in sidx:
|
||||
cells.append([sidx[c["a"]], sidx[c["b"]], round(c["rtt"], 1), round(c["allow"], 1), rn, f"our Vultr server gl-{c['src']}", c["src"]])
|
||||
return dict(sites=sites, runs=runs, cells=cells)
|
||||
|
||||
|
||||
def sweep(wn):
|
||||
"""Impossible-pair counts across each flat model's free parameter (WN set)."""
|
||||
from models import dualpole_xy, mercator_xy, floor_ms, C_FIBER, C_VACUUM
|
||||
S, flat = wn["sites"], wn["pairs"]
|
||||
out = {}
|
||||
for name, f in (("dualpole", dualpole_xy), ("mercator", mercator_xy)):
|
||||
rows = []
|
||||
for p in range(-180, 180, 5):
|
||||
xy = [f(s[2], s[3], p) for s in S]
|
||||
fib = vac = 0
|
||||
for k in range(0, len(flat), 3):
|
||||
a, b, rtt = flat[k], flat[k + 1], flat[k + 2]
|
||||
km = max(0.0, math.dist(xy[a], xy[b]) - 200)
|
||||
fib += rtt + 1 < floor_ms(km, C_FIBER)
|
||||
vac += rtt + 1 < floor_ms(km, C_VACUUM)
|
||||
rows.append([p, fib, vac])
|
||||
out[name] = rows
|
||||
return out
|
||||
|
||||
|
||||
BYO_CITIES = ["Sydney", "Melbourne", "Brisbane", "Perth", "Adelaide", "Hobart", "Auckland", "Wellington", "Christchurch",
|
||||
"Nouméa", "Suva", "Jakarta", "Singapore", "Tokyo", "Seoul", "Hong Kong", "Mumbai", "Dubai", "Johannesburg",
|
||||
"Cape Town", "Durban", "Luanda", "Nairobi", "Lagos", "São Paulo", "Fortaleza", "Buenos Aires", "Santiago",
|
||||
"Montevideo", "Lima", "Bogotá", "Mexico City", "Los Angeles", "Seattle", "Chicago", "New York", "Miami",
|
||||
"London", "Frankfurt", "Stockholm", "Reykjavik", "Honolulu"]
|
||||
|
||||
|
||||
def byo():
|
||||
"""Cities for the 'your location' box (GeoNames) and one RIPE Atlas anchor per target city."""
|
||||
import csv
|
||||
oce = {"AU", "NZ", "NC", "FJ", "PG", "PF", "WS", "TO", "VU"}
|
||||
cities = []
|
||||
for r in csv.reader(open(P("raw/geonames/cities15000.txt"), encoding="utf-8"), delimiter="\t", quoting=csv.QUOTE_NONE):
|
||||
pop = int(r[14] or 0)
|
||||
if pop >= 150000 or (r[8] in oce and pop >= 30000):
|
||||
cities.append([r[1], r[8], round(float(r[4]), 3), round(float(r[5]), 3), pop])
|
||||
cities.sort(key=lambda c: -c[4])
|
||||
anchors = json.load(open(P("raw/ripe_anchors_all.json")))
|
||||
live_ip = {t[0]: t[1] for t in TARGETS}
|
||||
norm = lambda s: s.lower().replace("ã", "a").replace("é", "e").replace("á", "a").replace("ó", "o").replace("í", "i")
|
||||
picked = []
|
||||
for city in BYO_CITIES:
|
||||
cand = [a for a in anchors if not a.get("is_disabled") and not a.get("date_decommissioned") and a.get("ip_v4")
|
||||
and norm(a["city"]).startswith(norm(city))]
|
||||
if not cand:
|
||||
continue
|
||||
pref = [a for a in cand if a["ip_v4"] == live_ip.get(city)]
|
||||
a = (pref or sorted(cand, key=lambda a: a["id"]))[0]
|
||||
lon, lat = a["geometry"]["coordinates"]
|
||||
picked.append([city, a["country"], round(lat, 3), round(lon, 3), a["ip_v4"], a["fqdn"].split(".")[0]])
|
||||
return dict(cities=[c[:4] for c in cities], anchors=picked)
|
||||
|
||||
|
||||
def traces():
|
||||
t = json.load(open(P("data/trace.json")))
|
||||
A = {x["fqdn"].split(".")[0]: x for x in json.load(open(P("raw/ripe_anchors_all.json")))}
|
||||
for r in t:
|
||||
for k in ("src", "dst"):
|
||||
lon, lat = A[r[k]]["geometry"]["coordinates"]
|
||||
r[k + "_ll"] = [round(lat, 4), round(lon, 4)]
|
||||
if r["cable"] == "tasman-global-access-tga-cable":
|
||||
r["assumed"] = "the cable is assumed from its length; both routers at the jump belong to Vocus, which is not a listed owner of TGA."
|
||||
return t
|
||||
|
||||
|
||||
def nets():
|
||||
"""Network attribution from asmap.py, compacted for the page."""
|
||||
f = P("data/asmap.json")
|
||||
if not os.path.exists(f):
|
||||
return None
|
||||
a = json.load(open(f))
|
||||
anc = {x["fqdn"].split(".")[0]: x for x in json.load(open(P("raw/ripe_anchors_all.json")))}
|
||||
vst = {n["code"]: n["city"] for n in json.load(open(P("data/vps/state.json")))["nodes"]}
|
||||
city = lambda fq: (anc.get(fq) or {}).get("city", fq)
|
||||
ends, gp = [], {}
|
||||
for e in a["endpoints"]:
|
||||
sid = e["site"].split(":", 1)[1]
|
||||
if e["kind"] == "RIPE anchor":
|
||||
ends.append(dict(kind="anchor", id=sid, city=city(sid), company=(anc.get(sid) or {}).get("company", ""), claimed_asn=e["claimed_asn"],
|
||||
bgp_origin=e["bgp_origin"], name=e["name"], prefix=e["prefix"], match=e["match"], rpki=e.get("rpki", [])))
|
||||
elif e["kind"] == "our Vultr server":
|
||||
ends.append(dict(kind="vultr", id=sid, city=vst.get(sid, sid), bgp_origin=e["bgp_origin"], name=e["name"], prefix=e["prefix"], match=e["match"], rpki=e.get("rpki", [])))
|
||||
else:
|
||||
k = e["claimed_asn"]
|
||||
gp.setdefault(k, dict(asn=k, network=e["network"], probes=0))["probes"] += 1
|
||||
ends.sort(key=lambda e: (e["kind"], e["city"]))
|
||||
cname = {c["id"]: c["name"].replace(" Cable", "") for c in json.load(open(P("data/cables.json")))["cables"]}
|
||||
xs = [dict(src_city=city(x["src"].split(":")[-1]), dst_city=city(x["dst"].split(":")[-1]), cable_name=cname.get(x["cable"]) if x["cable"] else None,
|
||||
owners=x["owners"], before=x["before"], after=x["after"]) for x in a["crossings"]]
|
||||
return dict(summary=a["summary"], traces=a["traces"], endpoints=ends, gp=sorted(gp.values(), key=lambda x: -x["probes"]),
|
||||
transit=a["transit"], ixps=a["ixps"], crossings=xs)
|
||||
|
||||
|
||||
def cables():
|
||||
d = json.load(open(P("data/cables.json")))
|
||||
keep = ("id", "name", "length", "rfs", "south", "landings", "span", "route", "span_ends")
|
||||
return dict(cables=[{k: c[k] for k in keep} for c in d["cables"]], dropped=d["dropped"])
|
||||
|
||||
|
||||
def netlines():
|
||||
"""Drawn route of every cable in service, for the background network."""
|
||||
meta = {}
|
||||
for f in glob.glob(P("raw/tg/cables/*.json")):
|
||||
c = json.load(open(f))
|
||||
meta[c["id"]] = c
|
||||
out = {}
|
||||
for f in json.load(open(P("raw/tg/cable-geo.json")))["features"]:
|
||||
c = meta.get(f["properties"]["id"])
|
||||
if not c or c.get("is_planned") or (c.get("rfs_year") or 0) > 2026:
|
||||
continue
|
||||
out.setdefault(c["id"], []).extend([[round(x, 2), round(y, 2)] for x, y in line] for line in f["geometry"]["coordinates"])
|
||||
return out
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
wn = wonder()
|
||||
data = dict(land=land(), wn=wn, live=live(), sweep=sweep(wn),
|
||||
cables=cables(), trace=traces(), byo=byo(),
|
||||
network=json.load(open(P("data/network.json"))), netlines=netlines(),
|
||||
flat=json.load(open(P("data/flatfit.json"))) if os.path.exists(P("data/flatfit.json")) else None,
|
||||
pingmap=json.load(open(P("data/pingmap.json")))["stress"], net=nets())
|
||||
blob = json.dumps(data, separators=(",", ":"), ensure_ascii=False)
|
||||
html = open(P("web/template.html")).read().replace("/*__DATA__*/null", blob)
|
||||
open(P("web/index.html"), "w").write(html)
|
||||
# standalone copy for hand-off: full document, d3 embedded so it opens without a network connection
|
||||
d3 = open(P("raw/lib/d3.min.js")).read()
|
||||
tag = '<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/7.9.0/d3.min.js"></script>'
|
||||
assert html.count(tag) == 1 and "</script>" not in d3.replace("<\\/script>", "")
|
||||
head, body = html.split("</style>", 1)
|
||||
doc = ('<!doctype html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n'
|
||||
'<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">\n'
|
||||
+ head + "</style>\n</head>\n<body>\n" + body.replace(tag, "<script>" + d3 + "</script>") + "\n</body>\n</html>\n")
|
||||
os.makedirs(P("handoff"), exist_ok=True)
|
||||
open(P("handoff/cable_latency_survey_report.html"), "w").write(doc)
|
||||
os.makedirs(P("site"), exist_ok=True) # deployed as https://pingstats.aethercosmology.com/
|
||||
open(P("site/index.html"), "w").write(doc)
|
||||
print(f"web/index.html {len(html)/1e6:.2f} MB; live cells {len(data['live']['cells'])}, "
|
||||
f"runs {len(data['live']['runs'])}, wn pairs {len(wn['pairs'])//3}, cables {len(data['cables']['cables'])}, "
|
||||
f"cities {len(data['byo']['cities'])}, anchors {[a[0] for a in data['byo']['anchors']]}")
|
||||
@@ -0,0 +1,88 @@
|
||||
"""Published submarine-cable lengths (TeleGeography Submarine Cable Map) against
|
||||
each map.
|
||||
|
||||
Two numbers per cable and map:
|
||||
span distance between the two farthest landing points. Any connected cable
|
||||
is at least this long, so span > published length means the map is
|
||||
wrong for that cable.
|
||||
route length of TeleGeography's drawn route, waypoint to waypoint, measured
|
||||
on that map (great circles on the globe, straight segments on a flat
|
||||
map). The drawing is schematic, so this is a comparison, not a proof.
|
||||
|
||||
python3 cables.py -> data/cables.json
|
||||
"""
|
||||
import glob, itertools, json, math, re
|
||||
from models import MODELS, distance, globe, ae_xy, dualpole_xy, mercator_xy
|
||||
|
||||
TG = "raw/tg"
|
||||
TOL, TOL_KM = 1.02, 50 # landing coordinates are approximate: span must beat length by 2% + 50 km
|
||||
|
||||
lp = {f["properties"]["id"]: tuple(f["geometry"]["coordinates"][::-1])
|
||||
for f in json.load(open(f"{TG}/landing-point-geo.json"))["features"]}
|
||||
geo = {}
|
||||
for f in json.load(open(f"{TG}/cable-geo.json"))["features"]:
|
||||
geo.setdefault(f["properties"]["id"], []).extend(f["geometry"]["coordinates"])
|
||||
|
||||
XY = {"ae": ae_xy, "dualpole": dualpole_xy, "mercator": mercator_xy}
|
||||
|
||||
|
||||
def route_len(model, lines):
|
||||
tot = 0.0
|
||||
for line in lines:
|
||||
pts = [(p[1], ((p[0] + 180) % 360) - 180) for p in line]
|
||||
for (la1, lo1), (la2, lo2) in zip(pts, pts[1:]):
|
||||
if model == "globe":
|
||||
tot += globe(la1, lo1, la2, lo2)
|
||||
else:
|
||||
(x1, y1), (x2, y2) = XY[model](la1, lo1), XY[model](la2, lo2)
|
||||
tot += math.hypot(x2 - x1, y2 - y1)
|
||||
return tot
|
||||
|
||||
|
||||
out = []
|
||||
for f in sorted(glob.glob(f"{TG}/cables/*.json")):
|
||||
c = json.load(open(f))
|
||||
m = re.match(r"^\s*([\d,\.]+)\s*km", c.get("length") or "")
|
||||
if not m or c.get("is_planned") or (c.get("rfs_year") or 0) > 2026:
|
||||
continue
|
||||
L = float(m.group(1).replace(",", ""))
|
||||
pts = [(p["name"], lp[p["id"]]) for p in c["landing_points"] if p["id"] in lp]
|
||||
if len(pts) < 2 or L <= 0 or c["id"] not in geo:
|
||||
continue
|
||||
span = {}
|
||||
for mod in MODELS:
|
||||
best = (0.0, None, None)
|
||||
for (na, a), (nb, b) in itertools.combinations(pts, 2):
|
||||
d = distance(mod, a, b)
|
||||
if d > best[0]:
|
||||
best = (d, na, nb)
|
||||
span[mod] = best
|
||||
route = {mod: route_len(mod, geo[c["id"]]) for mod in MODELS}
|
||||
out.append(dict(id=c["id"], name=c["name"], length=L, rfs=c.get("rfs_year"), owners=c.get("owners"),
|
||||
landings=len(pts), south=sum(1 for _, p in pts if p[0] < 0),
|
||||
span={k: round(v[0], 1) for k, v in span.items()},
|
||||
span_ends={k: [v[1], v[2]] for k, v in span.items()},
|
||||
route={k: round(v, 1) for k, v in route.items()},
|
||||
lines=[[[round(x, 2), round(y, 2)] for x, y in line] for line in geo[c["id"]]]))
|
||||
|
||||
bad_globe = [c for c in out if c["span"]["globe"] > c["length"] * TOL + TOL_KM]
|
||||
print(f"cables with length + landings + route: {len(out)}")
|
||||
print(f"impossible even on the globe (data errors, dropped): {len(bad_globe)}")
|
||||
for c in bad_globe[:12]:
|
||||
print(f" {c['name'][:45]:45s} published {c['length']:8.0f} globe span {c['span']['globe']:8.0f} {c['span_ends']['globe']}")
|
||||
clean = [c for c in out if c not in bad_globe]
|
||||
for mod in MODELS:
|
||||
n = sum(1 for c in clean if c["span"][mod] > c["length"] * TOL + TOL_KM)
|
||||
r = sorted(c["route"][mod] / c["length"] for c in clean)
|
||||
q = lambda p: r[int(p * (len(r) - 1))]
|
||||
print(f"{mod:9s} span > published: {n:4d}/{len(clean)} route/published median {q(.5):.2f} (10%: {q(.1):.2f}, 90%: {q(.9):.2f})")
|
||||
for cid in ["tasman-global-access-tga-cable", "south-atlantic-cable-system-sacs", "gondwana-1", "hawaiki",
|
||||
"southern-cross-next", "indigo-west", "indigo-central", "south-atlantic-inter-link-sail", "australia-singapore-cable-asc"]:
|
||||
c = next((x for x in out if x["id"] == cid), None)
|
||||
if c:
|
||||
print(f" {c['name'][:38]:38s} pub {c['length']:7.0f} | span " + " ".join(f"{k}={c['span'][k]:7.0f}" for k in MODELS)
|
||||
+ " | route " + " ".join(f"{k}={c['route'][k]:7.0f}" for k in MODELS))
|
||||
else:
|
||||
print(" missing", cid)
|
||||
json.dump(dict(cables=clean, dropped=[[c["name"], c["length"], c["span"]["globe"]] for c in bad_globe]),
|
||||
open("data/cables.json", "w"), ensure_ascii=False)
|
||||
+7376
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,63 @@
|
||||
2026-10-23T21:48:49Z us-det-as215129 23.135.52.20 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 17.101/18.424/20.291/0.917 ms
|
||||
2026-10-23T21:48:49Z us-sfj-as36444 208.86.250.253 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 29.891/31.844/33.994/1.275 ms
|
||||
2026-10-23T21:48:49Z us-sfj-as267 23.138.112.22 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 16.662/18.450/20.178/0.939 ms
|
||||
2026-10-23T21:48:49Z us-chi-as20473 66.42.119.57 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 25.426/26.896/28.548/0.892 ms
|
||||
2026-10-23T21:48:49Z us-chi-as12008 156.154.39.254 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 23.769/25.684/27.828/1.154 ms
|
||||
2026-10-23T21:48:49Z ca-tor-as20473 149.248.50.86 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 21.194/22.277/24.222/0.856 ms
|
||||
2026-10-23T21:48:49Z ca-wtl-as4508 155.254.2.42 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 40.630/42.525/44.176/0.932 ms
|
||||
2026-10-23T21:48:49Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3801ms rtt min/avg/max/mdev = 197.771/199.111/200.980/1.031 ms
|
||||
2026-10-23T21:48:49Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 209.016/210.864/212.669/1.197 ms, pipe 2
|
||||
2026-10-23T21:48:49Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 245.745/247.499/249.245/0.975 ms, pipe 2
|
||||
2026-10-23T21:48:49Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 215.199/217.005/218.545/0.912 ms, pipe 2
|
||||
2026-10-23T21:48:49Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 222.422/223.987/226.106/1.118 ms, pipe 2
|
||||
2026-10-23T21:48:49Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 270.711/272.143/273.824/0.996 ms, pipe 2
|
||||
2026-10-23T21:48:49Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 130.897/133.411/137.042/1.283 ms
|
||||
2026-10-23T21:48:49Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 159.783/161.560/163.100/1.022 ms
|
||||
2026-10-23T21:48:49Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 146.563/148.042/149.755/1.004 ms
|
||||
2026-10-23T21:48:49Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 106.618/108.036/110.160/0.997 ms
|
||||
2026-10-23T21:48:49Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 167.670/169.105/170.762/1.011 ms
|
||||
2026-10-23T21:48:49Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 217.361/219.252/221.066/1.068 ms, pipe 2
|
||||
2026-10-23T21:48:49Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 247.805/249.635/251.434/0.997 ms, pipe 2
|
||||
2026-10-23T21:48:49Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 237.448/238.779/240.298/0.941 ms, pipe 2
|
||||
2026-10-23T21:48:49Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 53.422/55.193/57.888/1.152 ms
|
||||
2026-10-23T21:48:49Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 184.475/185.838/187.241/0.989 ms
|
||||
2026-10-23T21:48:49Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3801ms rtt min/avg/max/mdev = 197.281/198.903/202.287/1.235 ms
|
||||
2026-10-23T21:48:49Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3797ms rtt min/avg/max/mdev = 196.103/197.444/198.906/0.876 ms
|
||||
2026-10-23T21:48:49Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 268.142/269.405/271.105/0.805 ms, pipe 2
|
||||
2026-10-23T21:48:49Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 160.236/161.768/163.570/0.817 ms
|
||||
2026-10-23T21:48:49Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 143.160/145.029/147.354/1.013 ms
|
||||
2026-10-23T21:48:49Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 58.877/60.574/62.352/0.964 ms
|
||||
2026-10-23T21:48:49Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 182.560/184.309/187.252/1.093 ms
|
||||
2026-10-23T21:48:49Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 106.152/107.316/108.863/0.792 ms
|
||||
2026-10-23T21:50:52Z us-det-as215129 23.135.52.20 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 16.884/18.554/20.667/1.063 ms
|
||||
2026-10-23T21:50:52Z us-sfj-as36444 208.86.250.253 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 30.160/31.681/33.430/1.121 ms
|
||||
2026-10-23T21:50:52Z us-sfj-as267 23.138.112.22 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 16.621/18.430/20.739/1.296 ms
|
||||
2026-10-23T21:50:52Z us-chi-as20473 66.42.119.57 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 25.546/26.897/28.219/0.912 ms
|
||||
2026-10-23T21:50:52Z us-chi-as12008 156.154.39.254 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 24.155/26.410/30.669/1.419 ms
|
||||
2026-10-23T21:50:52Z ca-tor-as20473 149.248.50.86 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 21.030/22.290/23.525/0.777 ms
|
||||
2026-10-23T21:50:52Z ca-wtl-as4508 155.254.2.42 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 40.418/42.046/44.895/1.142 ms
|
||||
2026-10-23T21:50:52Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3800ms rtt min/avg/max/mdev = 197.338/198.958/200.603/0.962 ms
|
||||
2026-10-23T21:50:52Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 209.307/210.745/212.255/0.774 ms, pipe 2
|
||||
2026-10-23T21:50:52Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 245.831/247.395/248.805/0.982 ms, pipe 2
|
||||
2026-10-23T21:50:52Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 215.490/216.988/218.965/0.951 ms, pipe 2
|
||||
2026-10-23T21:50:52Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 222.231/224.009/225.529/1.002 ms, pipe 2
|
||||
2026-10-23T21:50:52Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 270.883/272.347/273.582/0.911 ms, pipe 2
|
||||
2026-10-23T21:50:52Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 131.408/133.300/135.433/1.123 ms
|
||||
2026-10-23T21:50:52Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 159.738/161.229/163.815/1.072 ms
|
||||
2026-10-23T21:50:52Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 146.415/147.461/149.231/0.876 ms
|
||||
2026-10-23T21:50:52Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 106.712/108.012/110.099/1.057 ms
|
||||
2026-10-23T21:50:52Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 167.712/168.936/171.128/1.049 ms
|
||||
2026-10-23T21:50:52Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 216.693/218.384/219.935/1.066 ms, pipe 2
|
||||
2026-10-23T21:50:52Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 247.605/249.034/250.448/0.925 ms, pipe 2
|
||||
2026-10-23T21:50:52Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 237.763/239.087/241.084/0.896 ms, pipe 2
|
||||
2026-10-23T21:50:52Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 53.478/55.430/57.032/1.069 ms
|
||||
2026-10-23T21:50:52Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 184.470/185.781/187.398/0.947 ms
|
||||
2026-10-23T21:50:52Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3803ms rtt min/avg/max/mdev = 197.300/199.330/200.685/1.010 ms, pipe 2
|
||||
2026-10-23T21:50:52Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 195.560/197.763/199.160/0.992 ms
|
||||
2026-10-23T21:50:52Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 267.817/269.551/271.583/1.055 ms, pipe 2
|
||||
2026-10-23T21:50:52Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 160.038/161.770/164.101/0.976 ms
|
||||
2026-10-23T21:50:52Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 143.431/144.738/146.715/1.024 ms
|
||||
2026-10-23T21:50:52Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 59.362/61.000/62.726/1.017 ms
|
||||
2026-10-23T21:50:52Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 182.303/184.573/185.911/0.835 ms
|
||||
2026-10-23T21:50:52Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 105.464/107.612/109.377/1.075 ms
|
||||
done
|
||||
@@ -0,0 +1,31 @@
|
||||
us-det-as215129 23.135.52.20
|
||||
us-sfj-as36444 208.86.250.253
|
||||
us-sfj-as267 23.138.112.22
|
||||
us-chi-as20473 66.42.119.57
|
||||
us-chi-as12008 156.154.39.254
|
||||
ca-tor-as20473 149.248.50.86
|
||||
ca-wtl-as4508 155.254.2.42
|
||||
au-syd-as4826 114.31.201.91
|
||||
au-mel-as4826 49.255.112.151
|
||||
au-ept-as4826 114.31.207.7
|
||||
au-bne-as4826 49.255.158.255
|
||||
nz-akl-as38064 202.46.184.4
|
||||
nc-nou-as45345 103.2.186.195
|
||||
cl-scl-as64112 170.247.95.81
|
||||
ar-bue-as4270 170.210.5.200
|
||||
br-sao-as22548 200.160.6.19
|
||||
br-for-as37468 170.238.235.214
|
||||
ao-lad-as37468 102.130.66.11
|
||||
za-jnb-as37468 102.130.68.151
|
||||
za-cpt-as37199 197.155.3.27
|
||||
id-jkt-as4622 203.119.52.122
|
||||
us-lax-as6939 64.71.131.76
|
||||
kr-sel-as3491 63.222.106.8
|
||||
syd 207.148.81.200
|
||||
mel 67.219.106.57
|
||||
jnb 139.84.229.29
|
||||
scl 64.176.28.246
|
||||
sao 216.128.173.160
|
||||
lax 149.28.82.222
|
||||
icn 141.164.52.85
|
||||
hnl 208.83.236.158
|
||||
File diff suppressed because it is too large
Load Diff
+31164
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,18 @@
|
||||
rate limited, waiting 3201s
|
||||
114.31.201.91 id=2VcKAch4KCFlAyAar00021N4p probes=15 rate-remaining=235
|
||||
49.255.112.151 id=2rNna6EhCZre7vEZ200021N4q probes=15 rate-remaining=220
|
||||
114.31.207.7 id=2OHqFrNkqN8nweLvU00021N4q probes=15 rate-remaining=205
|
||||
49.255.158.255 id=2hrOdAEiIflfAjfiF00021N4q probes=15 rate-remaining=190
|
||||
202.46.184.4 id=2gjxAw40NUPkj6Ht000021N4q probes=15 rate-remaining=175
|
||||
103.2.186.195 id=2ru8YAgzTNxzbuHVO00021N4r probes=15 rate-remaining=160
|
||||
170.247.95.81 id=2ZlQrWYjuhlQCk00B00021N4r probes=15 rate-remaining=145
|
||||
170.210.5.200 id=2SjTgvXl1Xpj1Yx0A00021N4r probes=15 rate-remaining=130
|
||||
200.160.6.19 id=26aaEdPbLjCIb0JHE00021N4r probes=15 rate-remaining=115
|
||||
170.238.235.214 id=2tIqxkha96whxhikR00021N4r probes=15 rate-remaining=100
|
||||
102.130.66.11 id=2tIPFQIpCMCmEi0qE00021N4s probes=15 rate-remaining=85
|
||||
102.130.68.151 id=2idl8oIBoC6KvqPQv00021N4s probes=15 rate-remaining=70
|
||||
197.155.3.27 id=2gavXZSIHpaR3MTkk00021N4s probes=15 rate-remaining=55
|
||||
203.119.52.122 id=2tFAqSKN5PU7HU5Nr00021N4s probes=15 rate-remaining=40
|
||||
64.71.131.76 id=2fo3dDVjiNsX7Xmhk00021N4s probes=15 rate-remaining=25
|
||||
63.222.106.8 id=2IRsFgLNPoPiFFPPz00021N4t probes=15 rate-remaining=10
|
||||
saved data/live_run2.json: 240/240 cells with replies
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"AS16552 156.154.39.0/24": "valid",
|
||||
"AS16552 203.119.15.0/24": "valid",
|
||||
"AS20473 139.84.224.0/19": "valid",
|
||||
"AS20473 141.164.32.0/19": "valid",
|
||||
"AS20473 149.248.48.0/20": "valid",
|
||||
"AS20473 149.28.64.0/19": "valid",
|
||||
"AS20473 207.148.80.0/21": "valid",
|
||||
"AS20473 208.83.232.0/21": "valid",
|
||||
"AS20473 216.128.168.0/21": "valid",
|
||||
"AS20473 64.176.0.0/19": "valid",
|
||||
"AS20473 66.42.112.0/20": "valid",
|
||||
"AS20473 67.219.96.0/20": "valid",
|
||||
"AS215129 23.135.52.0/24": "valid",
|
||||
"AS22548 200.160.0.0/20": "valid",
|
||||
"AS267 23.138.112.0/22": "valid",
|
||||
"AS27678 200.1.122.0/23": "valid",
|
||||
"AS31713 63.222.106.0/24": "valid",
|
||||
"AS3491 63.222.106.0/24": "valid",
|
||||
"AS36444 208.86.248.0/21": "unknown",
|
||||
"AS37199 197.155.0.0/20": "valid",
|
||||
"AS37468 102.130.64.0/21": "valid",
|
||||
"AS37468 170.238.232.0/22": "valid",
|
||||
"AS38064 202.46.184.0/24": "unknown",
|
||||
"AS4270 170.210.0.0/16": "valid",
|
||||
"AS4508 155.254.2.0/23": "valid",
|
||||
"AS45345 103.2.184.0/22": "valid",
|
||||
"AS4622 203.119.52.0/24": "valid",
|
||||
"AS4826 114.31.192.0/20": "valid",
|
||||
"AS4826 49.255.0.0/16": "valid",
|
||||
"AS64112 170.247.95.0/24": "valid",
|
||||
"AS6939 64.71.128.0/18": "valid"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,583 @@
|
||||
[
|
||||
{
|
||||
"src": "nz-akl-as38064",
|
||||
"dst": "au-syd-as4826",
|
||||
"src_city": "Auckland",
|
||||
"dst_city": "Sydney",
|
||||
"cable": "tasman-global-access-tga-cable",
|
||||
"sea": "Tasman Sea",
|
||||
"msm": 68270059,
|
||||
"probe": 6904,
|
||||
"runs": 96,
|
||||
"hops": [
|
||||
{
|
||||
"hop": 1,
|
||||
"ip": "202.46.184.1",
|
||||
"raw": 0.26,
|
||||
"rtt": 0.26,
|
||||
"name": ""
|
||||
},
|
||||
{
|
||||
"hop": 2,
|
||||
"ip": "114.31.203.78",
|
||||
"raw": 1.71,
|
||||
"rtt": 1.71,
|
||||
"name": "te-0-0-2-0-113.bdr03.akl05.akl.nz.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 3,
|
||||
"ip": "114.31.202.34",
|
||||
"raw": 26.64,
|
||||
"rtt": 25.06,
|
||||
"name": "be105.bdr01.akl05.akl.nz.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 4,
|
||||
"ip": "114.31.202.58",
|
||||
"raw": 26.01,
|
||||
"rtt": 25.06,
|
||||
"name": "be203.cor01.syd14.nsw.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 5,
|
||||
"ip": "114.31.192.71",
|
||||
"raw": 26.75,
|
||||
"rtt": 25.06,
|
||||
"name": "be1.bdr02.syd11.nsw.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 6,
|
||||
"ip": "114.31.201.91",
|
||||
"raw": 25.06,
|
||||
"rtt": 25.06,
|
||||
"name": "91.201.31.114.core.vocus.network"
|
||||
}
|
||||
],
|
||||
"before": 1,
|
||||
"after": 2,
|
||||
"jump": 23.35,
|
||||
"end": 25.06,
|
||||
"window": [
|
||||
1792696009,
|
||||
1792782409
|
||||
]
|
||||
},
|
||||
{
|
||||
"src": "au-syd-as4826",
|
||||
"dst": "nz-akl-as38064",
|
||||
"src_city": "Sydney",
|
||||
"dst_city": "Auckland",
|
||||
"cable": "tasman-global-access-tga-cable",
|
||||
"sea": "Tasman Sea",
|
||||
"msm": 28323244,
|
||||
"probe": 7323,
|
||||
"runs": 94,
|
||||
"hops": [
|
||||
{
|
||||
"hop": 1,
|
||||
"ip": "114.31.201.90",
|
||||
"raw": 0.43,
|
||||
"rtt": 0.43,
|
||||
"name": "90.201.31.114.core.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 2,
|
||||
"ip": "114.31.192.104",
|
||||
"raw": 24.66,
|
||||
"rtt": 23.63,
|
||||
"name": "be157.cor01.syd14.nsw.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 3,
|
||||
"ip": "114.31.202.57",
|
||||
"raw": 23.63,
|
||||
"rtt": 23.63,
|
||||
"name": "be204.bdr01.akl03.akl.nz.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 4,
|
||||
"ip": "114.31.202.41",
|
||||
"raw": 23.9,
|
||||
"rtt": 23.9,
|
||||
"name": "be101.bdr04.alb01.akl.nz.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 5,
|
||||
"ip": "43.243.21.93",
|
||||
"raw": 25.33,
|
||||
"rtt": 24.04,
|
||||
"name": "as45177.akl.ix.nz"
|
||||
},
|
||||
{
|
||||
"hop": 8,
|
||||
"ip": "14.1.54.97",
|
||||
"raw": 24.04,
|
||||
"rtt": 24.04,
|
||||
"name": "lt-10-3-0-20.mdr-cr2.as45177.net.nz"
|
||||
},
|
||||
{
|
||||
"hop": 9,
|
||||
"ip": "14.1.54.98",
|
||||
"raw": 24.97,
|
||||
"rtt": 24.97,
|
||||
"name": "as38064-ip-98.cust.mdr-cr2.as45177.net.nz"
|
||||
},
|
||||
{
|
||||
"hop": 10,
|
||||
"ip": "202.46.184.4",
|
||||
"raw": 25.18,
|
||||
"rtt": 25.18,
|
||||
"name": ""
|
||||
}
|
||||
],
|
||||
"before": 0,
|
||||
"after": 1,
|
||||
"jump": 23.2,
|
||||
"end": 25.18,
|
||||
"window": [
|
||||
1792696009,
|
||||
1792782409
|
||||
]
|
||||
},
|
||||
{
|
||||
"src": "ao-lad-as37468",
|
||||
"dst": "br-for-as37468",
|
||||
"src_city": "Luanda",
|
||||
"dst_city": "Fortaleza",
|
||||
"cable": "south-atlantic-cable-system-sacs",
|
||||
"sea": "South Atlantic",
|
||||
"msm": 57650134,
|
||||
"probe": 7239,
|
||||
"runs": 95,
|
||||
"hops": [
|
||||
{
|
||||
"hop": 1,
|
||||
"ip": "102.130.66.1",
|
||||
"raw": 0.28,
|
||||
"rtt": 0.28,
|
||||
"name": ""
|
||||
},
|
||||
{
|
||||
"hop": 2,
|
||||
"ip": "102.130.68.104",
|
||||
"raw": 0.35,
|
||||
"rtt": 0.35,
|
||||
"name": ""
|
||||
},
|
||||
{
|
||||
"hop": 3,
|
||||
"ip": "102.130.70.37",
|
||||
"raw": 1.65,
|
||||
"rtt": 1.65,
|
||||
"name": ""
|
||||
},
|
||||
{
|
||||
"hop": 4,
|
||||
"ip": "100.64.193.49",
|
||||
"raw": 62.24,
|
||||
"rtt": 62.24,
|
||||
"name": ""
|
||||
},
|
||||
{
|
||||
"hop": 5,
|
||||
"ip": "100.64.192.205",
|
||||
"raw": 62.58,
|
||||
"rtt": 62.58,
|
||||
"name": ""
|
||||
},
|
||||
{
|
||||
"hop": 6,
|
||||
"ip": "170.238.235.214",
|
||||
"raw": 62.66,
|
||||
"rtt": 62.66,
|
||||
"name": "214.235.238.170.angolacables.co.ao"
|
||||
}
|
||||
],
|
||||
"before": 2,
|
||||
"after": 3,
|
||||
"jump": 60.59,
|
||||
"end": 62.66,
|
||||
"window": [
|
||||
1792696009,
|
||||
1792782409
|
||||
]
|
||||
},
|
||||
{
|
||||
"src": "br-for-as37468",
|
||||
"dst": "ao-lad-as37468",
|
||||
"src_city": "Fortaleza",
|
||||
"dst_city": "Luanda",
|
||||
"cable": "south-atlantic-cable-system-sacs",
|
||||
"sea": "South Atlantic",
|
||||
"msm": 57561744,
|
||||
"probe": 7242,
|
||||
"runs": 95,
|
||||
"hops": [
|
||||
{
|
||||
"hop": 1,
|
||||
"ip": "170.238.234.137",
|
||||
"raw": 0.28,
|
||||
"rtt": 0.24,
|
||||
"name": ""
|
||||
},
|
||||
{
|
||||
"hop": 2,
|
||||
"ip": "100.64.192.204",
|
||||
"raw": 0.24,
|
||||
"rtt": 0.24,
|
||||
"name": ""
|
||||
},
|
||||
{
|
||||
"hop": 3,
|
||||
"ip": "100.64.193.50",
|
||||
"raw": 61.03,
|
||||
"rtt": 61.03,
|
||||
"name": ""
|
||||
},
|
||||
{
|
||||
"hop": 4,
|
||||
"ip": "102.130.70.36",
|
||||
"raw": 62.49,
|
||||
"rtt": 62.49,
|
||||
"name": ""
|
||||
},
|
||||
{
|
||||
"hop": 5,
|
||||
"ip": "102.130.68.105",
|
||||
"raw": 62.6,
|
||||
"rtt": 62.6,
|
||||
"name": ""
|
||||
},
|
||||
{
|
||||
"hop": 6,
|
||||
"ip": "102.130.66.11",
|
||||
"raw": 62.62,
|
||||
"rtt": 62.62,
|
||||
"name": ""
|
||||
}
|
||||
],
|
||||
"before": 1,
|
||||
"after": 2,
|
||||
"jump": 60.79,
|
||||
"end": 62.62,
|
||||
"window": [
|
||||
1792696009,
|
||||
1792782409
|
||||
]
|
||||
},
|
||||
{
|
||||
"src": "nc-nou-as45345",
|
||||
"dst": "au-syd-as4826",
|
||||
"src_city": "Noum\u00e9a",
|
||||
"dst_city": "Sydney",
|
||||
"cable": "gondwana-1",
|
||||
"sea": "Coral Sea",
|
||||
"msm": 68270059,
|
||||
"probe": 7018,
|
||||
"runs": 96,
|
||||
"hops": [
|
||||
{
|
||||
"hop": 1,
|
||||
"ip": "103.2.186.221",
|
||||
"raw": 0.24,
|
||||
"rtt": 0.24,
|
||||
"name": ""
|
||||
},
|
||||
{
|
||||
"hop": 2,
|
||||
"ip": "202.87.128.198",
|
||||
"raw": 0.31,
|
||||
"rtt": 0.31,
|
||||
"name": ""
|
||||
},
|
||||
{
|
||||
"hop": 3,
|
||||
"ip": "202.87.128.197",
|
||||
"raw": 0.99,
|
||||
"rtt": 0.99,
|
||||
"name": ""
|
||||
},
|
||||
{
|
||||
"hop": 4,
|
||||
"ip": "45.127.172.74",
|
||||
"raw": 22.85,
|
||||
"rtt": 22.38,
|
||||
"name": "4826.syd.equinix.com"
|
||||
},
|
||||
{
|
||||
"hop": 5,
|
||||
"ip": "45.127.172.74",
|
||||
"raw": 22.73,
|
||||
"rtt": 22.38,
|
||||
"name": "4826.syd.equinix.com"
|
||||
},
|
||||
{
|
||||
"hop": 6,
|
||||
"ip": "114.31.192.64",
|
||||
"raw": 23.4,
|
||||
"rtt": 22.38,
|
||||
"name": "be158.cor01.syd11.nsw.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 7,
|
||||
"ip": "114.31.192.71",
|
||||
"raw": 22.68,
|
||||
"rtt": 22.38,
|
||||
"name": "be1.bdr02.syd11.nsw.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 8,
|
||||
"ip": "114.31.201.91",
|
||||
"raw": 22.38,
|
||||
"rtt": 22.38,
|
||||
"name": "91.201.31.114.core.vocus.network"
|
||||
}
|
||||
],
|
||||
"before": 2,
|
||||
"after": 3,
|
||||
"jump": 21.39,
|
||||
"end": 22.38,
|
||||
"window": [
|
||||
1792696009,
|
||||
1792782409
|
||||
]
|
||||
},
|
||||
{
|
||||
"src": "au-ept-as4826",
|
||||
"dst": "sg-sin-as12008",
|
||||
"src_city": "Perth",
|
||||
"dst_city": "Singapore",
|
||||
"cable": "australia-singapore-cable-asc",
|
||||
"sea": "Indian Ocean",
|
||||
"msm": 29779917,
|
||||
"probe": 7432,
|
||||
"runs": 96,
|
||||
"hops": [
|
||||
{
|
||||
"hop": 1,
|
||||
"ip": "114.31.207.6",
|
||||
"raw": 0.54,
|
||||
"rtt": 0.54,
|
||||
"name": "as8075.bdr03.per02.wa.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 2,
|
||||
"ip": "114.31.206.112",
|
||||
"raw": 51.16,
|
||||
"rtt": 51.11,
|
||||
"name": "be155.cor03.per01.wa.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 3,
|
||||
"ip": "114.31.206.75",
|
||||
"raw": 51.18,
|
||||
"rtt": 51.11,
|
||||
"name": "be200.bdr02.sin01.sin.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 4,
|
||||
"ip": "27.111.229.252",
|
||||
"raw": 51.13,
|
||||
"rtt": 51.11,
|
||||
"name": "16552.sgw.equinix.com"
|
||||
},
|
||||
{
|
||||
"hop": 5,
|
||||
"ip": "203.119.15.254",
|
||||
"raw": 51.11,
|
||||
"rtt": 51.11,
|
||||
"name": ""
|
||||
}
|
||||
],
|
||||
"before": 0,
|
||||
"after": 1,
|
||||
"jump": 50.57,
|
||||
"end": 51.11,
|
||||
"window": [
|
||||
1792696009,
|
||||
1792782409
|
||||
]
|
||||
},
|
||||
{
|
||||
"src": "au-ept-as4826",
|
||||
"dst": "au-syd-as4826",
|
||||
"src_city": "Perth",
|
||||
"dst_city": "Sydney",
|
||||
"cable": null,
|
||||
"sea": "Nullarbor (land route)",
|
||||
"msm": 68270059,
|
||||
"probe": 7432,
|
||||
"runs": 96,
|
||||
"hops": [
|
||||
{
|
||||
"hop": 1,
|
||||
"ip": "114.31.207.6",
|
||||
"raw": 0.55,
|
||||
"rtt": 0.55,
|
||||
"name": "as8075.bdr03.per02.wa.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 2,
|
||||
"ip": "114.31.206.112",
|
||||
"raw": 45.83,
|
||||
"rtt": 45.83,
|
||||
"name": "be155.cor03.per01.wa.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 3,
|
||||
"ip": "103.1.77.0",
|
||||
"raw": 46.14,
|
||||
"rtt": 45.92,
|
||||
"name": "be202.lsr01.stpk.wa.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 4,
|
||||
"ip": "103.1.76.144",
|
||||
"raw": 46.62,
|
||||
"rtt": 45.92,
|
||||
"name": "be803.lsr01.brdg.nsw.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 5,
|
||||
"ip": "103.1.77.39",
|
||||
"raw": 47.01,
|
||||
"rtt": 45.92,
|
||||
"name": "be200.cor01.syd14.nsw.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 6,
|
||||
"ip": "114.31.192.105",
|
||||
"raw": 45.98,
|
||||
"rtt": 45.92,
|
||||
"name": "be2.bdr02.syd11.nsw.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 7,
|
||||
"ip": "114.31.201.91",
|
||||
"raw": 45.92,
|
||||
"rtt": 45.92,
|
||||
"name": "91.201.31.114.core.vocus.network"
|
||||
}
|
||||
],
|
||||
"before": 0,
|
||||
"after": 1,
|
||||
"jump": 45.28,
|
||||
"end": 45.92,
|
||||
"window": [
|
||||
1792696009,
|
||||
1792782409
|
||||
]
|
||||
},
|
||||
{
|
||||
"src": "au-syd-as4826",
|
||||
"dst": "us-lax-as6939",
|
||||
"src_city": "Sydney",
|
||||
"dst_city": "Los Angeles",
|
||||
"cable": null,
|
||||
"sea": "Pacific (cable not identified)",
|
||||
"msm": 180787579,
|
||||
"probe": 7323,
|
||||
"runs": 96,
|
||||
"hops": [
|
||||
{
|
||||
"hop": 1,
|
||||
"ip": "114.31.201.90",
|
||||
"raw": 0.43,
|
||||
"rtt": 0.43,
|
||||
"name": "90.201.31.114.core.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 2,
|
||||
"ip": "114.31.192.70",
|
||||
"raw": 12.64,
|
||||
"rtt": 11.84,
|
||||
"name": "be157.cor01.syd11.nsw.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 3,
|
||||
"ip": "103.1.77.6",
|
||||
"raw": 12.33,
|
||||
"rtt": 11.84,
|
||||
"name": "be202.lsr01.brdg.nsw.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 4,
|
||||
"ip": "103.1.76.143",
|
||||
"raw": 12.66,
|
||||
"rtt": 11.84,
|
||||
"name": "be802.lsr01.melb.vic.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 5,
|
||||
"ip": "103.1.77.95",
|
||||
"raw": 12.35,
|
||||
"rtt": 11.84,
|
||||
"name": "be201.cor01.mel07.vic.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 6,
|
||||
"ip": "114.31.196.61",
|
||||
"raw": 12.71,
|
||||
"rtt": 11.84,
|
||||
"name": "be1.bdr03.mel07.vic.vocus.network"
|
||||
},
|
||||
{
|
||||
"hop": 7,
|
||||
"ip": "103.26.71.122",
|
||||
"raw": 12.81,
|
||||
"rtt": 11.84,
|
||||
"name": "as6939.melbourne.megaport.com"
|
||||
},
|
||||
{
|
||||
"hop": 8,
|
||||
"ip": "184.104.197.229",
|
||||
"raw": 11.84,
|
||||
"rtt": 11.84,
|
||||
"name": "be2.core3.syd1.he.net"
|
||||
},
|
||||
{
|
||||
"hop": 9,
|
||||
"ip": "184.104.194.233",
|
||||
"raw": 161.33,
|
||||
"rtt": 160.72,
|
||||
"name": "100ge0-0-0-9.core1.sjc1.he.net"
|
||||
},
|
||||
{
|
||||
"hop": 10,
|
||||
"ip": "72.52.92.134",
|
||||
"raw": 162.45,
|
||||
"rtt": 160.72,
|
||||
"name": "be2.core1.sjc2.he.net"
|
||||
},
|
||||
{
|
||||
"hop": 11,
|
||||
"ip": "72.52.92.161",
|
||||
"raw": 164.26,
|
||||
"rtt": 160.72,
|
||||
"name": "be1.core3.lax1.he.net"
|
||||
},
|
||||
{
|
||||
"hop": 12,
|
||||
"ip": "184.105.65.11",
|
||||
"raw": 161.9,
|
||||
"rtt": 160.72,
|
||||
"name": "port-channel1.core1.lax4.he.net"
|
||||
},
|
||||
{
|
||||
"hop": 13,
|
||||
"ip": "64.71.131.76",
|
||||
"raw": 160.72,
|
||||
"rtt": 160.72,
|
||||
"name": ""
|
||||
}
|
||||
],
|
||||
"before": 7,
|
||||
"after": 8,
|
||||
"jump": 148.88,
|
||||
"end": 160.72,
|
||||
"window": [
|
||||
1792696009,
|
||||
1792782409
|
||||
]
|
||||
}
|
||||
]
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,192 @@
|
||||
2026-10-23T21:23:04Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3826ms rtt min/avg/max/mdev = 187.299/216.735/744.921/121.336 ms
|
||||
2026-10-23T21:23:04Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3798ms rtt min/avg/max/mdev = 199.297/199.361/199.435/0.041 ms
|
||||
2026-10-23T21:23:04Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 362.858/362.937/363.144/0.057 ms, pipe 2
|
||||
2026-10-23T21:23:04Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 222.534/222.641/222.704/0.043 ms, pipe 2
|
||||
2026-10-23T21:23:04Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 216.223/216.380/217.861/0.342 ms, pipe 2
|
||||
2026-10-23T21:23:04Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 54.517/54.608/54.718/0.048 ms
|
||||
2026-10-23T21:23:04Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 180.635/180.765/181.630/0.201 ms
|
||||
2026-10-23T21:23:04Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3951ms rtt min/avg/max/mdev = 0.046/0.059/0.122/0.021 ms
|
||||
2026-10-23T21:23:04Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 200.815/200.976/201.175/0.100 ms, pipe 2
|
||||
2026-10-23T21:23:04Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 212.391/212.552/212.800/0.090 ms, pipe 2
|
||||
2026-10-23T21:23:04Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 240.777/240.838/240.963/0.042 ms, pipe 2
|
||||
2026-10-23T21:23:04Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 212.314/212.432/212.524/0.049 ms, pipe 2
|
||||
2026-10-23T21:23:04Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3841ms rtt min/avg/max/mdev = 222.726/223.103/228.250/1.184 ms, pipe 2
|
||||
2026-10-23T21:23:04Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 271.293/271.401/271.603/0.074 ms, pipe 2
|
||||
2026-10-23T21:23:04Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3827ms rtt min/avg/max/mdev = 206.456/206.794/207.545/0.260 ms, pipe 2
|
||||
2026-10-23T21:23:04Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 256.283/257.091/270.742/3.132 ms, pipe 2
|
||||
2026-10-23T21:23:04Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 215.573/218.348/229.844/4.062 ms, pipe 2
|
||||
2026-10-23T21:23:04Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 192.903/193.023/193.164/0.073 ms
|
||||
2026-10-23T21:23:04Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 238.096/238.356/238.577/0.131 ms, pipe 2
|
||||
2026-10-23T21:23:04Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 289.061/289.182/289.611/0.110 ms, pipe 2
|
||||
2026-10-23T21:23:04Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 334.698/334.817/335.089/0.099 ms, pipe 2
|
||||
2026-10-23T21:23:04Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 285.141/285.389/286.486/0.327 ms, pipe 2
|
||||
2026-10-23T21:23:04Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 56.671/56.751/56.879/0.045 ms
|
||||
2026-10-23T21:23:04Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 179.200/179.272/179.363/0.035 ms
|
||||
2026-10-23T21:30:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 187.330/187.440/187.830/0.101 ms
|
||||
2026-10-23T21:30:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3798ms rtt min/avg/max/mdev = 199.314/199.410/199.518/0.051 ms
|
||||
2026-10-23T21:30:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 362.909/363.001/363.217/0.066 ms, pipe 2
|
||||
2026-10-23T21:30:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 222.599/222.691/223.072/0.096 ms, pipe 2
|
||||
2026-10-23T21:30:00Z sao 216.128.173.160 20 packets transmitted, 19 received, 5% packet loss, time 3821ms rtt min/avg/max/mdev = 216.255/216.373/216.907/0.148 ms, pipe 2
|
||||
2026-10-23T21:30:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 54.502/54.573/54.675/0.049 ms
|
||||
2026-10-23T21:30:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 186.229/186.294/186.571/0.072 ms
|
||||
2026-10-23T21:30:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3948ms rtt min/avg/max/mdev = 0.057/0.076/0.091/0.008 ms
|
||||
2026-10-23T21:30:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 200.838/200.974/201.208/0.112 ms, pipe 2
|
||||
2026-10-23T21:30:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 212.421/212.494/212.608/0.052 ms, pipe 2
|
||||
2026-10-23T21:30:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3824ms rtt min/avg/max/mdev = 240.758/240.854/240.961/0.049 ms, pipe 2
|
||||
2026-10-23T21:30:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3823ms rtt min/avg/max/mdev = 212.354/212.494/212.621/0.072 ms, pipe 2
|
||||
2026-10-23T21:30:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3825ms rtt min/avg/max/mdev = 222.748/222.875/223.050/0.067 ms, pipe 2
|
||||
2026-10-23T21:30:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 271.315/271.427/271.696/0.077 ms, pipe 2
|
||||
2026-10-23T21:30:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 206.557/206.821/208.366/0.378 ms, pipe 2
|
||||
2026-10-23T21:30:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 256.336/256.388/256.479/0.042 ms, pipe 2
|
||||
2026-10-23T21:30:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 216.684/222.536/228.251/2.983 ms, pipe 2
|
||||
2026-10-23T21:30:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 192.906/193.053/193.254/0.100 ms
|
||||
2026-10-23T21:30:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3823ms rtt min/avg/max/mdev = 238.143/238.404/238.906/0.154 ms, pipe 2
|
||||
2026-10-23T21:30:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 289.013/289.103/289.229/0.061 ms, pipe 2
|
||||
2026-10-23T21:30:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 334.605/334.978/336.609/0.466 ms, pipe 2
|
||||
2026-10-23T21:30:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 285.117/285.168/285.246/0.032 ms, pipe 2
|
||||
2026-10-23T21:30:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 56.690/56.758/57.038/0.070 ms
|
||||
2026-10-23T21:30:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 179.169/179.264/179.378/0.048 ms
|
||||
2026-10-23T21:40:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 187.351/187.458/187.563/0.057 ms
|
||||
2026-10-23T21:40:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3798ms rtt min/avg/max/mdev = 199.328/199.414/199.499/0.040 ms
|
||||
2026-10-23T21:40:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 362.901/362.994/363.257/0.078 ms, pipe 2
|
||||
2026-10-23T21:40:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 222.596/222.667/222.762/0.049 ms, pipe 2
|
||||
2026-10-23T21:40:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3839ms rtt min/avg/max/mdev = 216.228/216.339/216.507/0.060 ms, pipe 2
|
||||
2026-10-23T21:40:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 54.516/54.607/54.729/0.063 ms
|
||||
2026-10-23T21:40:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 180.636/180.744/180.883/0.068 ms
|
||||
2026-10-23T21:40:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3945ms rtt min/avg/max/mdev = 0.047/0.074/0.121/0.013 ms
|
||||
2026-10-23T21:40:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 200.849/200.987/201.228/0.090 ms, pipe 2
|
||||
2026-10-23T21:40:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 212.420/212.522/212.735/0.081 ms, pipe 2
|
||||
2026-10-23T21:40:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 240.724/240.823/240.952/0.049 ms, pipe 2
|
||||
2026-10-23T21:40:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 212.353/212.464/212.717/0.073 ms, pipe 2
|
||||
2026-10-23T21:40:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 222.765/222.857/223.008/0.058 ms, pipe 2
|
||||
2026-10-23T21:40:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 271.291/271.390/271.543/0.078 ms, pipe 2
|
||||
2026-10-23T21:40:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 206.543/206.838/207.982/0.339 ms, pipe 2
|
||||
2026-10-23T21:40:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 256.285/256.378/256.501/0.044 ms, pipe 2
|
||||
2026-10-23T21:40:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 224.345/231.215/237.379/2.993 ms, pipe 2
|
||||
2026-10-23T21:40:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 192.865/193.024/193.201/0.084 ms
|
||||
2026-10-23T21:40:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 238.183/238.363/238.565/0.101 ms, pipe 2
|
||||
2026-10-23T21:40:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 289.043/289.160/289.287/0.065 ms, pipe 2
|
||||
2026-10-23T21:40:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 334.668/334.804/335.186/0.111 ms, pipe 2
|
||||
2026-10-23T21:40:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 18 received, 10% packet loss, time 3824ms rtt min/avg/max/mdev = 285.182/288.709/291.132/2.715 ms, pipe 2
|
||||
2026-10-23T21:40:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 56.613/56.729/56.812/0.055 ms
|
||||
2026-10-23T21:40:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3805ms rtt min/avg/max/mdev = 179.173/179.224/179.314/0.035 ms
|
||||
2026-10-23T21:50:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3830ms rtt min/avg/max/mdev = 187.363/189.152/221.723/7.472 ms
|
||||
2026-10-23T21:50:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3798ms rtt min/avg/max/mdev = 199.376/199.426/199.503/0.031 ms
|
||||
2026-10-23T21:50:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 362.851/362.952/363.047/0.051 ms, pipe 2
|
||||
2026-10-23T21:50:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 222.572/222.655/222.740/0.037 ms, pipe 2
|
||||
2026-10-23T21:50:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 216.236/216.296/216.367/0.033 ms, pipe 2
|
||||
2026-10-23T21:50:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 54.547/54.623/54.706/0.050 ms
|
||||
2026-10-23T21:50:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 186.253/186.328/186.445/0.052 ms
|
||||
2026-10-23T21:50:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3952ms rtt min/avg/max/mdev = 0.034/0.046/0.058/0.005 ms
|
||||
2026-10-23T21:50:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 200.888/201.030/201.322/0.115 ms, pipe 2
|
||||
2026-10-23T21:50:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 212.426/212.559/212.759/0.090 ms, pipe 2
|
||||
2026-10-23T21:50:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3823ms rtt min/avg/max/mdev = 240.764/240.851/240.937/0.048 ms, pipe 2
|
||||
2026-10-23T21:50:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 212.402/212.559/212.684/0.067 ms, pipe 2
|
||||
2026-10-23T21:50:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 222.807/222.929/223.065/0.068 ms, pipe 2
|
||||
2026-10-23T21:50:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 271.343/271.468/271.616/0.080 ms, pipe 2
|
||||
2026-10-23T21:50:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3826ms rtt min/avg/max/mdev = 206.544/209.785/265.403/12.764 ms, pipe 2
|
||||
2026-10-23T21:50:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 256.323/256.429/256.777/0.092 ms, pipe 2
|
||||
2026-10-23T21:50:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 215.639/221.834/227.968/4.453 ms, pipe 2
|
||||
2026-10-23T21:50:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 192.899/193.016/193.304/0.109 ms
|
||||
2026-10-23T21:50:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 238.198/238.396/238.641/0.122 ms, pipe 2
|
||||
2026-10-23T21:50:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 289.072/289.176/289.342/0.068 ms, pipe 2
|
||||
2026-10-23T21:50:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 334.699/337.866/395.998/13.336 ms, pipe 2
|
||||
2026-10-23T21:50:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 285.133/286.148/304.427/4.193 ms, pipe 2
|
||||
2026-10-23T21:50:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 56.697/56.822/58.071/0.289 ms
|
||||
2026-10-23T21:50:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 179.241/179.278/179.327/0.030 ms
|
||||
2026-10-23T22:00:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 187.393/187.680/191.360/0.852 ms
|
||||
2026-10-23T22:00:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3799ms rtt min/avg/max/mdev = 199.366/199.437/199.550/0.048 ms
|
||||
2026-10-23T22:00:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 362.892/362.989/363.167/0.067 ms, pipe 2
|
||||
2026-10-23T22:00:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 222.636/222.851/225.471/0.604 ms, pipe 2
|
||||
2026-10-23T22:00:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 216.229/216.304/216.384/0.046 ms, pipe 2
|
||||
2026-10-23T22:00:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 54.456/54.556/54.683/0.053 ms
|
||||
2026-10-23T22:00:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 186.233/187.843/217.141/6.721 ms, pipe 2
|
||||
2026-10-23T22:00:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3951ms rtt min/avg/max/mdev = 0.040/0.050/0.063/0.005 ms
|
||||
2026-10-23T22:00:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 200.842/200.944/201.022/0.049 ms, pipe 2
|
||||
2026-10-23T22:00:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 212.385/212.854/219.137/1.442 ms, pipe 2
|
||||
2026-10-23T22:00:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 240.729/241.008/245.022/0.922 ms, pipe 2
|
||||
2026-10-23T22:00:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 212.387/212.479/212.654/0.077 ms, pipe 2
|
||||
2026-10-23T22:00:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 222.777/222.905/223.157/0.089 ms, pipe 2
|
||||
2026-10-23T22:00:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 271.312/271.487/271.879/0.151 ms, pipe 2
|
||||
2026-10-23T22:00:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 206.607/206.935/207.703/0.373 ms, pipe 2
|
||||
2026-10-23T22:00:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 255.718/255.783/255.851/0.039 ms, pipe 2
|
||||
2026-10-23T22:00:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 215.643/218.025/228.464/3.156 ms, pipe 2
|
||||
2026-10-23T22:00:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 192.904/193.059/193.205/0.073 ms
|
||||
2026-10-23T22:00:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 238.253/238.581/241.160/0.599 ms, pipe 2
|
||||
2026-10-23T22:00:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 289.081/289.197/289.500/0.113 ms, pipe 2
|
||||
2026-10-23T22:00:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 334.730/334.864/335.371/0.151 ms, pipe 2
|
||||
2026-10-23T22:00:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 285.145/285.204/285.331/0.046 ms, pipe 2
|
||||
2026-10-23T22:00:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 56.686/56.760/57.072/0.080 ms
|
||||
2026-10-23T22:00:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 179.225/179.320/179.668/0.088 ms
|
||||
2026-10-23T22:10:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 187.369/187.469/187.595/0.055 ms
|
||||
2026-10-23T22:10:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3802ms rtt min/avg/max/mdev = 199.330/200.209/215.325/3.468 ms, pipe 2
|
||||
2026-10-23T22:10:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 362.854/362.935/363.115/0.057 ms, pipe 2
|
||||
2026-10-23T22:10:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3825ms rtt min/avg/max/mdev = 222.590/222.649/222.715/0.032 ms, pipe 2
|
||||
2026-10-23T22:10:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 216.239/216.310/216.645/0.086 ms, pipe 2
|
||||
2026-10-23T22:10:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 54.520/54.575/54.658/0.032 ms
|
||||
2026-10-23T22:10:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 180.604/180.703/180.871/0.055 ms
|
||||
2026-10-23T22:10:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3949ms rtt min/avg/max/mdev = 0.034/0.048/0.060/0.005 ms
|
||||
2026-10-23T22:10:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 200.825/200.987/201.227/0.114 ms, pipe 2
|
||||
2026-10-23T22:10:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 212.402/212.691/216.270/0.823 ms, pipe 2
|
||||
2026-10-23T22:10:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 240.761/240.850/241.003/0.050 ms, pipe 2
|
||||
2026-10-23T22:10:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 212.316/212.467/212.669/0.091 ms, pipe 2
|
||||
2026-10-23T22:10:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 222.717/222.836/223.008/0.073 ms, pipe 2
|
||||
2026-10-23T22:10:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 271.243/271.375/271.527/0.060 ms, pipe 2
|
||||
2026-10-23T22:10:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 206.476/206.936/207.546/0.337 ms, pipe 2
|
||||
2026-10-23T22:10:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3824ms rtt min/avg/max/mdev = 255.711/255.779/255.872/0.044 ms, pipe 2
|
||||
2026-10-23T22:10:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 218.020/225.962/235.140/4.473 ms, pipe 2
|
||||
2026-10-23T22:10:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 192.879/192.971/193.085/0.061 ms
|
||||
2026-10-23T22:10:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 238.190/238.408/238.733/0.134 ms, pipe 2
|
||||
2026-10-23T22:10:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 289.022/289.121/289.372/0.082 ms, pipe 2
|
||||
2026-10-23T22:10:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 334.637/334.802/335.712/0.221 ms, pipe 2
|
||||
2026-10-23T22:10:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 19 received, 5% packet loss, time 3819ms rtt min/avg/max/mdev = 291.005/291.245/291.457/0.113 ms, pipe 2
|
||||
2026-10-23T22:10:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 56.646/56.718/56.797/0.041 ms
|
||||
2026-10-23T22:10:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3805ms rtt min/avg/max/mdev = 179.147/179.240/179.331/0.045 ms
|
||||
2026-10-23T22:20:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 187.327/187.427/187.616/0.084 ms
|
||||
2026-10-23T22:20:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3798ms rtt min/avg/max/mdev = 199.262/199.373/199.455/0.052 ms
|
||||
2026-10-23T22:20:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 362.826/362.943/363.230/0.084 ms, pipe 2
|
||||
2026-10-23T22:20:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 222.558/222.693/223.652/0.227 ms, pipe 2
|
||||
2026-10-23T22:20:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 216.215/216.291/216.400/0.044 ms, pipe 2
|
||||
2026-10-23T22:20:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 54.513/54.578/54.668/0.040 ms
|
||||
2026-10-23T22:20:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 180.619/180.716/180.801/0.035 ms
|
||||
2026-10-23T22:20:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3945ms rtt min/avg/max/mdev = 0.033/0.049/0.065/0.006 ms
|
||||
2026-10-23T22:20:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 200.910/201.037/201.219/0.085 ms, pipe 2
|
||||
2026-10-23T22:20:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 212.407/212.507/212.648/0.054 ms, pipe 2
|
||||
2026-10-23T22:20:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 240.753/240.823/240.899/0.040 ms, pipe 2
|
||||
2026-10-23T22:20:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 212.364/212.458/212.568/0.057 ms, pipe 2
|
||||
2026-10-23T22:20:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 222.891/223.211/224.151/0.263 ms, pipe 2
|
||||
2026-10-23T22:20:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 271.290/271.404/271.645/0.085 ms, pipe 2
|
||||
2026-10-23T22:20:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3828ms rtt min/avg/max/mdev = 206.567/207.161/208.567/0.607 ms, pipe 2
|
||||
2026-10-23T22:20:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 255.699/255.805/255.879/0.046 ms, pipe 2
|
||||
2026-10-23T22:20:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 237.825/241.854/279.856/8.850 ms, pipe 2
|
||||
2026-10-23T22:20:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3797ms rtt min/avg/max/mdev = 192.865/193.063/194.293/0.293 ms
|
||||
2026-10-23T22:20:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 238.121/238.349/238.736/0.147 ms, pipe 2
|
||||
2026-10-23T22:20:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 289.047/289.192/289.750/0.142 ms, pipe 2
|
||||
2026-10-23T22:20:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 19 received, 5% packet loss, time 3823ms rtt min/avg/max/mdev = 334.631/334.869/335.520/0.225 ms, pipe 2
|
||||
2026-10-23T22:20:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 17 received, 15% packet loss, time 3831ms rtt min/avg/max/mdev = 291.081/291.241/291.514/0.099 ms, pipe 2
|
||||
2026-10-23T22:20:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 56.651/56.712/56.767/0.028 ms
|
||||
2026-10-23T22:20:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 179.189/179.243/179.311/0.033 ms
|
||||
2026-10-23T22:30:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 187.408/187.545/188.960/0.326 ms
|
||||
2026-10-23T22:30:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3799ms rtt min/avg/max/mdev = 199.329/199.426/199.668/0.071 ms
|
||||
2026-10-23T22:30:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 362.834/362.937/363.086/0.057 ms, pipe 2
|
||||
2026-10-23T22:30:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3823ms rtt min/avg/max/mdev = 222.556/222.667/222.759/0.052 ms, pipe 2
|
||||
2026-10-23T22:30:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 216.241/216.433/218.703/0.523 ms, pipe 2
|
||||
2026-10-23T22:30:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 54.537/54.598/54.679/0.033 ms
|
||||
2026-10-23T22:30:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 180.665/180.960/181.922/0.361 ms
|
||||
2026-10-23T22:30:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3948ms rtt min/avg/max/mdev = 0.039/0.052/0.067/0.005 ms
|
||||
2026-10-23T22:30:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 200.838/201.030/201.237/0.116 ms, pipe 2
|
||||
2026-10-23T22:30:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 212.393/212.515/212.698/0.069 ms, pipe 2
|
||||
2026-10-23T22:30:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 240.723/240.790/240.875/0.039 ms, pipe 2
|
||||
2026-10-23T22:30:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 212.420/212.481/212.619/0.050 ms, pipe 2
|
||||
2026-10-23T22:30:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 222.819/222.896/223.025/0.061 ms, pipe 2
|
||||
2026-10-23T22:30:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 271.259/271.370/271.511/0.055 ms, pipe 2
|
||||
2026-10-23T22:30:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 206.456/206.778/207.772/0.304 ms, pipe 2
|
||||
2026-10-23T22:30:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 255.707/255.799/255.905/0.052 ms, pipe 2
|
||||
2026-10-23T22:30:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 230.304/234.567/239.869/2.263 ms, pipe 2
|
||||
2026-10-23T22:30:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3801ms rtt min/avg/max/mdev = 192.820/194.219/217.437/5.327 ms, pipe 2
|
||||
2026-10-23T22:30:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 238.038/238.349/238.606/0.143 ms, pipe 2
|
||||
2026-10-23T22:30:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 288.990/289.099/289.242/0.077 ms, pipe 2
|
||||
2026-10-23T22:30:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 334.674/334.782/335.055/0.110 ms, pipe 2
|
||||
2026-10-23T22:30:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 16 received, 20% packet loss, time 3839ms rtt min/avg/max/mdev = 291.015/291.266/291.553/0.129 ms, pipe 2
|
||||
2026-10-23T22:30:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 56.660/56.730/56.794/0.036 ms
|
||||
2026-10-23T22:30:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 179.185/179.262/179.331/0.044 ms
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,191 @@
|
||||
2026-10-23T21:21:14Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3804ms rtt min/avg/max/mdev = 142.973/143.114/143.859/0.185 ms
|
||||
2026-10-23T21:21:14Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3805ms rtt min/avg/max/mdev = 159.135/159.233/159.370/0.060 ms
|
||||
2026-10-23T21:21:14Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 282.376/282.433/282.626/0.052 ms, pipe 2
|
||||
2026-10-23T21:21:14Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 315.886/316.055/317.132/0.270 ms, pipe 2
|
||||
2026-10-23T21:21:14Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 308.304/308.372/308.452/0.045 ms, pipe 2
|
||||
2026-10-23T21:21:14Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 132.594/132.672/132.799/0.039 ms
|
||||
2026-10-23T21:21:14Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3951ms rtt min/avg/max/mdev = 0.046/0.056/0.097/0.010 ms
|
||||
2026-10-23T21:21:14Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 207.362/207.472/207.648/0.097 ms, pipe 2
|
||||
2026-10-23T21:21:14Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 218.964/219.033/219.130/0.034 ms, pipe 2
|
||||
2026-10-23T21:21:14Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 257.200/257.294/257.423/0.049 ms, pipe 2
|
||||
2026-10-23T21:21:14Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 222.349/222.484/222.601/0.062 ms, pipe 2
|
||||
2026-10-23T21:21:14Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 171.527/171.646/171.903/0.082 ms
|
||||
2026-10-23T21:21:14Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 194.837/195.008/195.237/0.090 ms
|
||||
2026-10-23T21:21:14Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 286.192/286.832/288.092/0.611 ms, pipe 2
|
||||
2026-10-23T21:21:14Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 332.760/332.875/332.982/0.055 ms, pipe 2
|
||||
2026-10-23T21:21:14Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 315.525/315.626/315.709/0.047 ms, pipe 2
|
||||
2026-10-23T21:21:14Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 302.363/302.475/302.650/0.079 ms, pipe 2
|
||||
2026-10-23T21:21:14Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 334.619/334.793/335.036/0.093 ms, pipe 2
|
||||
2026-10-23T21:21:14Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 368.234/368.321/368.716/0.098 ms, pipe 2
|
||||
2026-10-23T21:21:14Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3828ms rtt min/avg/max/mdev = 410.476/410.640/410.845/0.092 ms, pipe 3
|
||||
2026-10-23T21:21:14Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 121.570/121.681/122.589/0.214 ms
|
||||
2026-10-23T21:21:14Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 135.245/135.286/135.367/0.028 ms
|
||||
2026-10-23T21:21:14Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 1.306/1.363/1.423/0.029 ms
|
||||
2026-10-23T21:30:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 186.149/214.679/570.927/90.686 ms, pipe 3
|
||||
2026-10-23T21:30:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 148.328/148.454/148.886/0.141 ms
|
||||
2026-10-23T21:30:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 159.209/159.272/159.404/0.050 ms
|
||||
2026-10-23T21:30:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 282.428/282.510/282.600/0.041 ms, pipe 2
|
||||
2026-10-23T21:30:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 315.915/315.974/316.105/0.050 ms, pipe 2
|
||||
2026-10-23T21:30:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 312.772/312.866/313.026/0.058 ms, pipe 2
|
||||
2026-10-23T21:30:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3805ms rtt min/avg/max/mdev = 143.028/143.090/143.256/0.054 ms
|
||||
2026-10-23T21:30:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3947ms rtt min/avg/max/mdev = 0.030/0.048/0.066/0.008 ms
|
||||
2026-10-23T21:30:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 207.413/207.565/207.872/0.111 ms, pipe 2
|
||||
2026-10-23T21:30:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 218.973/219.113/219.398/0.109 ms, pipe 2
|
||||
2026-10-23T21:30:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 257.155/257.206/257.279/0.035 ms, pipe 2
|
||||
2026-10-23T21:30:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 222.296/222.423/222.877/0.126 ms, pipe 2
|
||||
2026-10-23T21:30:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 171.467/171.585/171.836/0.086 ms
|
||||
2026-10-23T21:30:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3804ms rtt min/avg/max/mdev = 194.845/194.961/195.134/0.062 ms
|
||||
2026-10-23T21:30:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 286.133/288.879/336.671/10.966 ms, pipe 2
|
||||
2026-10-23T21:30:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 337.893/337.958/338.067/0.045 ms, pipe 2
|
||||
2026-10-23T21:30:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 316.350/316.566/316.858/0.163 ms, pipe 2
|
||||
2026-10-23T21:30:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 302.350/302.485/302.573/0.070 ms, pipe 2
|
||||
2026-10-23T21:30:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 334.514/334.598/334.670/0.047 ms, pipe 2
|
||||
2026-10-23T21:30:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 368.184/368.291/368.393/0.060 ms, pipe 2
|
||||
2026-10-23T21:30:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 402.239/405.333/461.694/12.930 ms, pipe 3
|
||||
2026-10-23T21:30:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 121.520/121.551/121.591/0.021 ms
|
||||
2026-10-23T21:30:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 135.173/135.643/143.898/1.893 ms
|
||||
2026-10-23T21:30:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 1.276/1.352/1.636/0.073 ms
|
||||
2026-10-23T21:40:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 180.651/181.035/181.938/0.377 ms
|
||||
2026-10-23T21:40:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 145.738/145.836/146.033/0.073 ms
|
||||
2026-10-23T21:40:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 156.482/156.616/156.913/0.089 ms
|
||||
2026-10-23T21:40:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 282.296/282.509/284.094/0.372 ms, pipe 2
|
||||
2026-10-23T21:40:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 315.884/316.174/318.605/0.643 ms, pipe 2
|
||||
2026-10-23T21:40:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 305.922/306.013/306.512/0.121 ms, pipe 2
|
||||
2026-10-23T21:40:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3803ms rtt min/avg/max/mdev = 143.001/143.113/143.211/0.052 ms
|
||||
2026-10-23T21:40:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3950ms rtt min/avg/max/mdev = 0.023/0.058/0.088/0.016 ms
|
||||
2026-10-23T21:40:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 207.416/207.563/207.724/0.087 ms, pipe 2
|
||||
2026-10-23T21:40:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 219.001/219.117/219.353/0.089 ms, pipe 2
|
||||
2026-10-23T21:40:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 257.201/257.259/257.321/0.034 ms, pipe 2
|
||||
2026-10-23T21:40:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 222.359/222.479/222.716/0.087 ms, pipe 2
|
||||
2026-10-23T21:40:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3803ms rtt min/avg/max/mdev = 168.871/168.948/169.025/0.050 ms
|
||||
2026-10-23T21:40:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3797ms rtt min/avg/max/mdev = 194.838/194.987/195.075/0.056 ms
|
||||
2026-10-23T21:40:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 286.293/286.476/287.306/0.239 ms, pipe 2
|
||||
2026-10-23T21:40:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 337.907/338.002/338.077/0.048 ms, pipe 2
|
||||
2026-10-23T21:40:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 305.332/305.428/305.528/0.061 ms, pipe 2
|
||||
2026-10-23T21:40:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 302.374/302.511/302.685/0.077 ms, pipe 2
|
||||
2026-10-23T21:40:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 334.632/334.704/334.831/0.055 ms, pipe 2
|
||||
2026-10-23T21:40:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 369.081/369.147/369.281/0.046 ms, pipe 2
|
||||
2026-10-23T21:40:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3927ms rtt min/avg/max/mdev = 402.883/409.016/522.939/26.135 ms, pipe 3
|
||||
2026-10-23T21:40:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 19 received, 5% packet loss, time 3815ms rtt min/avg/max/mdev = 125.177/125.225/125.315/0.029 ms
|
||||
2026-10-23T21:40:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3805ms rtt min/avg/max/mdev = 135.164/135.242/135.355/0.036 ms
|
||||
2026-10-23T21:40:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 1.271/1.316/1.375/0.029 ms
|
||||
2026-10-23T21:50:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 186.271/186.764/189.662/0.811 ms
|
||||
2026-10-23T21:50:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 145.646/145.872/148.548/0.615 ms
|
||||
2026-10-23T21:50:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 159.165/159.259/159.544/0.078 ms
|
||||
2026-10-23T21:50:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 282.415/282.515/282.668/0.068 ms, pipe 2
|
||||
2026-10-23T21:50:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 315.893/316.999/336.049/4.370 ms, pipe 2
|
||||
2026-10-23T21:50:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 308.441/308.543/309.228/0.163 ms, pipe 2
|
||||
2026-10-23T21:50:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 131.659/131.793/132.073/0.077 ms
|
||||
2026-10-23T21:50:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3947ms rtt min/avg/max/mdev = 0.050/0.073/0.092/0.011 ms
|
||||
2026-10-23T21:50:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 207.452/207.655/207.899/0.136 ms, pipe 2
|
||||
2026-10-23T21:50:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 219.039/219.162/219.409/0.118 ms, pipe 2
|
||||
2026-10-23T21:50:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 257.199/257.301/257.435/0.055 ms, pipe 2
|
||||
2026-10-23T21:50:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 222.448/222.535/222.657/0.058 ms, pipe 2
|
||||
2026-10-23T21:50:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3803ms rtt min/avg/max/mdev = 168.989/169.100/169.392/0.112 ms
|
||||
2026-10-23T21:50:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 194.956/195.024/195.108/0.048 ms
|
||||
2026-10-23T21:50:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 291.404/294.474/343.450/11.250 ms, pipe 2
|
||||
2026-10-23T21:50:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 337.981/338.110/339.190/0.250 ms, pipe 2
|
||||
2026-10-23T21:50:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 313.772/313.916/313.997/0.057 ms, pipe 2
|
||||
2026-10-23T21:50:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 302.363/302.554/302.863/0.106 ms, pipe 2
|
||||
2026-10-23T21:50:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 334.534/334.694/334.799/0.072 ms, pipe 2
|
||||
2026-10-23T21:50:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 369.058/369.137/369.221/0.050 ms, pipe 2
|
||||
2026-10-23T21:50:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3825ms rtt min/avg/max/mdev = 410.558/415.365/504.940/20.549 ms, pipe 3
|
||||
2026-10-23T21:50:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 126.258/126.298/126.344/0.025 ms
|
||||
2026-10-23T21:50:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3806ms rtt min/avg/max/mdev = 135.216/135.270/135.347/0.032 ms
|
||||
2026-10-23T21:50:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 1.312/1.373/1.434/0.033 ms
|
||||
2026-10-23T22:00:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 186.246/186.585/187.988/0.449 ms
|
||||
2026-10-23T22:00:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 148.376/148.509/149.305/0.194 ms
|
||||
2026-10-23T22:00:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 156.450/156.585/156.738/0.090 ms
|
||||
2026-10-23T22:00:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 282.423/282.529/282.886/0.101 ms, pipe 2
|
||||
2026-10-23T22:00:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 315.967/316.070/316.305/0.091 ms, pipe 2
|
||||
2026-10-23T22:00:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 310.210/310.517/313.897/0.784 ms, pipe 2
|
||||
2026-10-23T22:00:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 136.008/136.069/136.202/0.048 ms
|
||||
2026-10-23T22:00:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3947ms rtt min/avg/max/mdev = 0.034/0.065/0.136/0.027 ms
|
||||
2026-10-23T22:00:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 207.367/207.496/207.608/0.053 ms, pipe 2
|
||||
2026-10-23T22:00:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 219.011/219.091/219.209/0.051 ms, pipe 2
|
||||
2026-10-23T22:00:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 257.136/257.216/257.327/0.048 ms, pipe 2
|
||||
2026-10-23T22:00:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 222.423/222.488/222.599/0.045 ms, pipe 2
|
||||
2026-10-23T22:00:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 166.262/166.356/166.494/0.063 ms
|
||||
2026-10-23T22:00:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 194.920/195.007/195.110/0.048 ms
|
||||
2026-10-23T22:00:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 286.221/286.494/287.467/0.353 ms, pipe 2
|
||||
2026-10-23T22:00:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 334.017/334.117/334.224/0.055 ms, pipe 2
|
||||
2026-10-23T22:00:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 304.550/304.631/304.895/0.075 ms, pipe 2
|
||||
2026-10-23T22:00:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 302.414/302.530/302.752/0.086 ms, pipe 2
|
||||
2026-10-23T22:00:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 334.623/334.724/334.876/0.075 ms, pipe 2
|
||||
2026-10-23T22:00:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 369.120/369.210/369.418/0.071 ms, pipe 2
|
||||
2026-10-23T22:00:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3923ms rtt min/avg/max/mdev = 402.630/402.831/403.545/0.201 ms, pipe 2
|
||||
2026-10-23T22:00:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3805ms rtt min/avg/max/mdev = 129.199/129.241/129.356/0.035 ms
|
||||
2026-10-23T22:00:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 135.216/135.279/135.565/0.079 ms
|
||||
2026-10-23T22:00:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 1.377/1.433/1.529/0.042 ms
|
||||
2026-10-23T22:10:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 180.759/181.005/182.089/0.327 ms
|
||||
2026-10-23T22:10:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 145.702/146.052/147.600/0.437 ms
|
||||
2026-10-23T22:10:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3805ms rtt min/avg/max/mdev = 153.920/154.687/160.294/1.538 ms
|
||||
2026-10-23T22:10:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 282.410/282.466/282.568/0.038 ms, pipe 2
|
||||
2026-10-23T22:10:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 316.596/316.804/318.515/0.401 ms, pipe 2
|
||||
2026-10-23T22:10:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 307.413/307.615/309.707/0.490 ms, pipe 2
|
||||
2026-10-23T22:10:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 141.099/141.165/141.269/0.045 ms
|
||||
2026-10-23T22:10:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3951ms rtt min/avg/max/mdev = 0.046/0.068/0.093/0.013 ms
|
||||
2026-10-23T22:10:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3829ms rtt min/avg/max/mdev = 207.397/207.575/207.766/0.094 ms, pipe 2
|
||||
2026-10-23T22:10:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 219.023/219.147/219.799/0.158 ms, pipe 2
|
||||
2026-10-23T22:10:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 257.191/257.289/257.463/0.057 ms, pipe 2
|
||||
2026-10-23T22:10:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3823ms rtt min/avg/max/mdev = 222.387/222.493/222.591/0.049 ms, pipe 2
|
||||
2026-10-23T22:10:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 171.490/171.618/171.841/0.104 ms
|
||||
2026-10-23T22:10:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 194.888/194.985/195.107/0.056 ms
|
||||
2026-10-23T22:10:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 286.236/286.805/289.797/0.775 ms, pipe 2
|
||||
2026-10-23T22:10:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 333.143/333.240/333.342/0.052 ms, pipe 2
|
||||
2026-10-23T22:10:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 311.994/312.113/312.324/0.064 ms, pipe 2
|
||||
2026-10-23T22:10:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 302.416/302.494/302.571/0.048 ms, pipe 2
|
||||
2026-10-23T22:10:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 334.572/334.706/334.962/0.099 ms, pipe 2
|
||||
2026-10-23T22:10:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 369.057/369.153/369.306/0.051 ms, pipe 2
|
||||
2026-10-23T22:10:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3827ms rtt min/avg/max/mdev = 403.640/403.792/404.135/0.124 ms, pipe 3
|
||||
2026-10-23T22:10:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 19 received, 5% packet loss, time 3824ms rtt min/avg/max/mdev = 111.724/111.788/111.909/0.046 ms
|
||||
2026-10-23T22:10:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3806ms rtt min/avg/max/mdev = 135.229/135.262/135.304/0.020 ms
|
||||
2026-10-23T22:10:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 1.290/1.339/1.400/0.029 ms
|
||||
2026-10-23T22:20:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 180.617/180.879/181.537/0.224 ms
|
||||
2026-10-23T22:20:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 145.788/146.282/147.828/0.642 ms
|
||||
2026-10-23T22:20:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 159.234/159.329/159.483/0.071 ms
|
||||
2026-10-23T22:20:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 282.440/282.546/283.286/0.177 ms, pipe 2
|
||||
2026-10-23T22:20:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 316.581/316.644/316.753/0.055 ms, pipe 2
|
||||
2026-10-23T22:20:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 306.575/306.729/307.814/0.251 ms, pipe 2
|
||||
2026-10-23T22:20:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 131.667/131.968/136.286/0.991 ms
|
||||
2026-10-23T22:20:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3950ms rtt min/avg/max/mdev = 0.047/0.075/0.133/0.018 ms
|
||||
2026-10-23T22:20:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 207.410/207.540/207.815/0.099 ms, pipe 2
|
||||
2026-10-23T22:20:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 219.031/219.134/219.345/0.074 ms, pipe 2
|
||||
2026-10-23T22:20:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 257.184/257.266/257.427/0.061 ms, pipe 2
|
||||
2026-10-23T22:20:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3826ms rtt min/avg/max/mdev = 222.403/222.509/222.595/0.048 ms, pipe 2
|
||||
2026-10-23T22:20:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 166.414/166.705/166.920/0.154 ms
|
||||
2026-10-23T22:20:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 194.867/195.007/195.085/0.055 ms
|
||||
2026-10-23T22:20:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 290.487/291.232/293.141/0.693 ms, pipe 2
|
||||
2026-10-23T22:20:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 335.016/335.112/335.541/0.106 ms, pipe 2
|
||||
2026-10-23T22:20:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 310.478/310.578/310.671/0.055 ms, pipe 2
|
||||
2026-10-23T22:20:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 302.432/302.582/302.801/0.100 ms, pipe 2
|
||||
2026-10-23T22:20:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 334.568/334.688/334.824/0.060 ms, pipe 2
|
||||
2026-10-23T22:20:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 369.076/369.215/369.631/0.110 ms, pipe 2
|
||||
2026-10-23T22:20:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 401.596/401.760/402.117/0.149 ms, pipe 3
|
||||
2026-10-23T22:20:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3803ms rtt min/avg/max/mdev = 113.998/114.072/114.163/0.039 ms
|
||||
2026-10-23T22:20:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3806ms rtt min/avg/max/mdev = 135.231/135.262/135.341/0.024 ms
|
||||
2026-10-23T22:20:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 1.302/1.375/1.436/0.035 ms
|
||||
2026-10-23T22:30:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 180.670/181.256/183.525/0.682 ms
|
||||
2026-10-23T22:30:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 143.108/144.475/158.570/3.460 ms
|
||||
2026-10-23T22:30:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 159.274/159.640/160.904/0.405 ms
|
||||
2026-10-23T22:30:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 282.413/282.619/284.092/0.385 ms, pipe 2
|
||||
2026-10-23T22:30:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 316.600/316.702/316.955/0.082 ms, pipe 2
|
||||
2026-10-23T22:30:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 313.405/313.585/314.396/0.203 ms, pipe 2
|
||||
2026-10-23T22:30:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 137.788/137.903/138.084/0.065 ms
|
||||
2026-10-23T22:30:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3949ms rtt min/avg/max/mdev = 0.031/0.071/0.086/0.014 ms
|
||||
2026-10-23T22:30:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 207.440/207.673/208.443/0.207 ms, pipe 2
|
||||
2026-10-23T22:30:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 218.973/219.086/219.297/0.078 ms, pipe 2
|
||||
2026-10-23T22:30:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 257.200/257.253/257.313/0.028 ms, pipe 2
|
||||
2026-10-23T22:30:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 222.366/222.508/222.690/0.087 ms, pipe 2
|
||||
2026-10-23T22:30:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3804ms rtt min/avg/max/mdev = 168.911/169.140/169.451/0.157 ms
|
||||
2026-10-23T22:30:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 194.889/195.009/195.154/0.067 ms
|
||||
2026-10-23T22:30:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 286.172/286.506/287.517/0.302 ms, pipe 2
|
||||
2026-10-23T22:30:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 334.017/334.092/334.269/0.054 ms, pipe 2
|
||||
2026-10-23T22:30:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 316.582/316.660/316.746/0.044 ms, pipe 2
|
||||
2026-10-23T22:30:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 302.451/302.563/302.906/0.098 ms, pipe 2
|
||||
2026-10-23T22:30:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 334.724/334.930/335.163/0.104 ms, pipe 2
|
||||
2026-10-23T22:30:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 369.069/369.161/369.290/0.049 ms, pipe 2
|
||||
2026-10-23T22:30:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 409.902/410.050/410.284/0.106 ms, pipe 3
|
||||
2026-10-23T22:30:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 111.764/111.816/111.909/0.038 ms
|
||||
2026-10-23T22:30:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 135.229/135.317/135.734/0.102 ms
|
||||
2026-10-23T22:30:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 1.294/1.411/1.491/0.049 ms
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,191 @@
|
||||
2026-10-23T21:20:32Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 384.294/384.360/384.476/0.042 ms, pipe 2
|
||||
2026-10-23T21:20:32Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3834ms rtt min/avg/max/mdev = 414.429/414.505/414.591/0.050 ms, pipe 3
|
||||
2026-10-23T21:20:32Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3941ms rtt min/avg/max/mdev = 0.052/0.063/0.077/0.005 ms
|
||||
2026-10-23T21:20:32Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 357.256/357.346/357.626/0.085 ms, pipe 2
|
||||
2026-10-23T21:20:32Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 345.163/345.351/346.422/0.251 ms, pipe 2
|
||||
2026-10-23T21:20:32Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 303.623/303.765/304.145/0.117 ms, pipe 2
|
||||
2026-10-23T21:20:32Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 282.372/282.446/282.613/0.057 ms, pipe 2
|
||||
2026-10-23T21:20:32Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3826ms rtt min/avg/max/mdev = 453.396/453.560/453.808/0.125 ms, pipe 3
|
||||
2026-10-23T21:20:32Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 463.259/463.344/463.569/0.071 ms, pipe 3
|
||||
2026-10-23T21:20:32Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 505.240/505.386/506.314/0.216 ms, pipe 3
|
||||
2026-10-23T21:20:32Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 468.486/468.590/468.792/0.071 ms, pipe 3
|
||||
2026-10-23T21:20:32Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3841ms rtt min/avg/max/mdev = 472.909/545.551/1136.892/176.563 ms, pipe 6
|
||||
2026-10-23T21:20:32Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3826ms rtt min/avg/max/mdev = 501.551/501.721/502.990/0.300 ms, pipe 3
|
||||
2026-10-23T21:20:32Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 357.474/357.851/359.395/0.387 ms, pipe 2
|
||||
2026-10-23T21:20:32Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 390.176/390.241/390.370/0.040 ms, pipe 2
|
||||
2026-10-23T21:20:32Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 358.395/358.482/358.686/0.062 ms, pipe 2
|
||||
2026-10-23T21:20:32Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 113.809/113.909/114.074/0.066 ms
|
||||
2026-10-23T21:20:32Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 54.214/54.415/54.733/0.123 ms
|
||||
2026-10-23T21:20:32Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3929ms rtt min/avg/max/mdev = 0.467/0.546/0.731/0.076 ms
|
||||
2026-10-23T21:20:32Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 16.001/16.115/16.337/0.095 ms
|
||||
2026-10-23T21:20:32Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 334.014/334.096/334.480/0.094 ms, pipe 2
|
||||
2026-10-23T21:20:32Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 288.033/288.183/289.491/0.312 ms, pipe 2
|
||||
2026-10-23T21:20:32Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 281.194/281.336/282.539/0.283 ms, pipe 2
|
||||
2026-10-23T21:30:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 362.866/363.036/363.233/0.080 ms, pipe 2
|
||||
2026-10-23T21:30:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 384.251/384.388/384.700/0.086 ms, pipe 2
|
||||
2026-10-23T21:30:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3825ms rtt min/avg/max/mdev = 414.461/414.540/414.705/0.061 ms, pipe 3
|
||||
2026-10-23T21:30:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3948ms rtt min/avg/max/mdev = 0.051/0.070/0.124/0.015 ms
|
||||
2026-10-23T21:30:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 357.288/357.396/357.647/0.097 ms, pipe 2
|
||||
2026-10-23T21:30:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 341.364/341.470/342.224/0.178 ms, pipe 2
|
||||
2026-10-23T21:30:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 303.731/304.659/320.652/3.669 ms, pipe 2
|
||||
2026-10-23T21:30:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 282.374/282.464/282.540/0.042 ms, pipe 2
|
||||
2026-10-23T21:30:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3826ms rtt min/avg/max/mdev = 453.464/455.063/468.767/4.434 ms, pipe 3
|
||||
2026-10-23T21:30:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 463.278/463.372/463.692/0.096 ms, pipe 3
|
||||
2026-10-23T21:30:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3830ms rtt min/avg/max/mdev = 505.313/506.164/520.505/3.290 ms, pipe 3
|
||||
2026-10-23T21:30:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 468.507/468.670/468.983/0.100 ms, pipe 3
|
||||
2026-10-23T21:30:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3824ms rtt min/avg/max/mdev = 472.984/473.123/473.371/0.101 ms, pipe 3
|
||||
2026-10-23T21:30:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3823ms rtt min/avg/max/mdev = 501.577/501.791/502.333/0.193 ms, pipe 3
|
||||
2026-10-23T21:30:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 357.509/357.824/358.811/0.290 ms, pipe 2
|
||||
2026-10-23T21:30:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 390.247/390.313/390.423/0.043 ms, pipe 2
|
||||
2026-10-23T21:30:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 354.600/354.799/356.217/0.356 ms, pipe 2
|
||||
2026-10-23T21:30:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 113.829/113.992/114.815/0.205 ms
|
||||
2026-10-23T21:30:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 54.222/54.478/55.067/0.178 ms
|
||||
2026-10-23T21:30:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3945ms rtt min/avg/max/mdev = 0.504/0.589/0.697/0.053 ms
|
||||
2026-10-23T21:30:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 16.085/20.012/90.147/16.093 ms
|
||||
2026-10-23T21:30:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 334.073/334.137/334.306/0.050 ms, pipe 2
|
||||
2026-10-23T21:30:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 288.080/288.143/288.237/0.040 ms, pipe 2
|
||||
2026-10-23T21:30:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 281.265/281.352/281.437/0.041 ms, pipe 2
|
||||
2026-10-23T21:40:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 362.935/363.034/363.165/0.061 ms, pipe 2
|
||||
2026-10-23T21:40:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 384.362/384.429/384.548/0.046 ms, pipe 2
|
||||
2026-10-23T21:40:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3824ms rtt min/avg/max/mdev = 414.459/414.561/414.853/0.086 ms, pipe 3
|
||||
2026-10-23T21:40:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3945ms rtt min/avg/max/mdev = 0.020/0.059/0.085/0.015 ms
|
||||
2026-10-23T21:40:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 357.097/357.187/357.371/0.068 ms, pipe 2
|
||||
2026-10-23T21:40:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 345.184/345.365/345.987/0.152 ms, pipe 2
|
||||
2026-10-23T21:40:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 303.674/303.752/303.808/0.035 ms, pipe 2
|
||||
2026-10-23T21:40:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 282.423/282.476/282.570/0.039 ms, pipe 2
|
||||
2026-10-23T21:40:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3826ms rtt min/avg/max/mdev = 453.392/453.539/453.737/0.107 ms, pipe 3
|
||||
2026-10-23T21:40:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3825ms rtt min/avg/max/mdev = 463.242/463.355/463.503/0.064 ms, pipe 3
|
||||
2026-10-23T21:40:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 505.315/505.368/505.451/0.033 ms, pipe 3
|
||||
2026-10-23T21:40:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3823ms rtt min/avg/max/mdev = 468.396/468.553/468.794/0.082 ms, pipe 3
|
||||
2026-10-23T21:40:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3829ms rtt min/avg/max/mdev = 472.909/473.035/473.312/0.085 ms, pipe 3
|
||||
2026-10-23T21:40:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 501.639/501.737/502.154/0.108 ms, pipe 3
|
||||
2026-10-23T21:40:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 357.634/357.833/358.481/0.177 ms, pipe 2
|
||||
2026-10-23T21:40:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 390.206/390.260/390.343/0.030 ms, pipe 2
|
||||
2026-10-23T21:40:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 358.038/358.190/358.400/0.071 ms, pipe 2
|
||||
2026-10-23T21:40:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 113.891/113.981/114.100/0.068 ms
|
||||
2026-10-23T21:40:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 53.298/53.457/53.654/0.095 ms
|
||||
2026-10-23T21:40:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3943ms rtt min/avg/max/mdev = 0.471/0.596/0.945/0.103 ms
|
||||
2026-10-23T21:40:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 16.019/18.394/61.099/9.798 ms
|
||||
2026-10-23T21:40:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 334.018/334.113/334.211/0.043 ms, pipe 2
|
||||
2026-10-23T21:40:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 288.016/288.097/288.225/0.043 ms, pipe 2
|
||||
2026-10-23T21:40:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 281.228/281.271/281.350/0.030 ms, pipe 2
|
||||
2026-10-23T21:50:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 362.946/363.631/374.481/2.491 ms, pipe 2
|
||||
2026-10-23T21:50:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 384.240/384.315/384.413/0.039 ms, pipe 2
|
||||
2026-10-23T21:50:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3826ms rtt min/avg/max/mdev = 414.404/414.519/414.640/0.063 ms, pipe 3
|
||||
2026-10-23T21:50:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3950ms rtt min/avg/max/mdev = 0.024/0.061/0.083/0.013 ms
|
||||
2026-10-23T21:50:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 356.918/358.667/380.374/5.359 ms, pipe 2
|
||||
2026-10-23T21:50:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 341.397/341.469/341.836/0.091 ms, pipe 2
|
||||
2026-10-23T21:50:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 303.668/303.771/303.882/0.058 ms, pipe 2
|
||||
2026-10-23T21:50:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 282.425/282.522/282.687/0.064 ms, pipe 2
|
||||
2026-10-23T21:50:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 453.424/453.521/453.701/0.074 ms, pipe 3
|
||||
2026-10-23T21:50:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3824ms rtt min/avg/max/mdev = 463.279/463.384/463.509/0.070 ms, pipe 3
|
||||
2026-10-23T21:50:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 505.330/506.088/518.838/2.925 ms, pipe 3
|
||||
2026-10-23T21:50:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 468.523/468.623/468.721/0.063 ms, pipe 3
|
||||
2026-10-23T21:50:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 473.036/473.312/475.908/0.604 ms, pipe 3
|
||||
2026-10-23T21:50:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3828ms rtt min/avg/max/mdev = 501.586/501.768/502.220/0.149 ms, pipe 3
|
||||
2026-10-23T21:50:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 357.569/360.624/392.893/8.342 ms, pipe 2
|
||||
2026-10-23T21:50:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 390.193/390.312/390.399/0.056 ms, pipe 2
|
||||
2026-10-23T21:50:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 356.008/356.086/356.203/0.056 ms, pipe 2
|
||||
2026-10-23T21:50:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3804ms rtt min/avg/max/mdev = 112.816/112.956/113.217/0.079 ms
|
||||
2026-10-23T21:50:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 53.272/53.441/53.722/0.098 ms
|
||||
2026-10-23T21:50:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3946ms rtt min/avg/max/mdev = 0.506/0.621/0.902/0.096 ms
|
||||
2026-10-23T21:50:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 16.075/17.294/37.670/4.674 ms
|
||||
2026-10-23T21:50:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 334.068/334.147/334.270/0.054 ms, pipe 2
|
||||
2026-10-23T21:50:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 288.042/288.196/289.422/0.286 ms, pipe 2
|
||||
2026-10-23T21:50:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 281.236/281.314/281.379/0.035 ms, pipe 2
|
||||
2026-10-23T22:00:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 362.942/363.307/366.949/0.881 ms, pipe 2
|
||||
2026-10-23T22:00:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 384.282/384.375/384.482/0.049 ms, pipe 2
|
||||
2026-10-23T22:00:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3827ms rtt min/avg/max/mdev = 414.463/414.547/414.664/0.043 ms, pipe 3
|
||||
2026-10-23T22:00:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3947ms rtt min/avg/max/mdev = 0.037/0.062/0.090/0.010 ms
|
||||
2026-10-23T22:00:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 356.921/357.090/357.311/0.087 ms, pipe 2
|
||||
2026-10-23T22:00:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 343.102/343.198/343.710/0.124 ms, pipe 2
|
||||
2026-10-23T22:00:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 303.684/303.742/303.876/0.046 ms, pipe 2
|
||||
2026-10-23T22:00:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 282.435/282.508/282.657/0.052 ms, pipe 2
|
||||
2026-10-23T22:00:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3824ms rtt min/avg/max/mdev = 453.398/453.554/453.750/0.115 ms, pipe 3
|
||||
2026-10-23T22:00:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3824ms rtt min/avg/max/mdev = 463.254/463.368/463.528/0.074 ms, pipe 3
|
||||
2026-10-23T22:00:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3825ms rtt min/avg/max/mdev = 505.280/505.365/505.428/0.040 ms, pipe 3
|
||||
2026-10-23T22:00:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 468.483/468.577/468.774/0.074 ms, pipe 3
|
||||
2026-10-23T22:00:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3823ms rtt min/avg/max/mdev = 472.915/473.064/473.220/0.081 ms, pipe 3
|
||||
2026-10-23T22:00:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 501.629/501.796/502.287/0.167 ms, pipe 3
|
||||
2026-10-23T22:00:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 357.503/358.679/372.700/3.238 ms, pipe 2
|
||||
2026-10-23T22:00:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 390.148/390.226/390.341/0.048 ms, pipe 2
|
||||
2026-10-23T22:00:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 354.086/354.193/354.354/0.064 ms, pipe 2
|
||||
2026-10-23T22:00:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 112.791/112.924/113.123/0.077 ms
|
||||
2026-10-23T22:00:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 53.304/53.479/53.736/0.111 ms
|
||||
2026-10-23T22:00:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3941ms rtt min/avg/max/mdev = 0.484/0.855/5.730/1.121 ms
|
||||
2026-10-23T22:00:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3806ms rtt min/avg/max/mdev = 16.033/18.998/73.681/12.545 ms
|
||||
2026-10-23T22:00:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 334.039/334.122/334.219/0.045 ms, pipe 2
|
||||
2026-10-23T22:00:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 288.032/288.126/288.192/0.037 ms, pipe 2
|
||||
2026-10-23T22:00:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 281.259/281.805/291.440/2.210 ms, pipe 2
|
||||
2026-10-23T22:10:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 362.888/363.021/363.219/0.082 ms, pipe 2
|
||||
2026-10-23T22:10:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 384.294/384.372/384.579/0.062 ms, pipe 2
|
||||
2026-10-23T22:10:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3835ms rtt min/avg/max/mdev = 414.411/414.494/414.632/0.061 ms, pipe 3
|
||||
2026-10-23T22:10:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3944ms rtt min/avg/max/mdev = 0.035/0.056/0.067/0.008 ms
|
||||
2026-10-23T22:10:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 356.890/357.053/357.341/0.083 ms, pipe 2
|
||||
2026-10-23T22:10:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 341.332/341.374/341.513/0.042 ms, pipe 2
|
||||
2026-10-23T22:10:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 303.694/303.787/303.925/0.065 ms, pipe 2
|
||||
2026-10-23T22:10:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 282.464/282.534/282.647/0.049 ms, pipe 2
|
||||
2026-10-23T22:10:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3823ms rtt min/avg/max/mdev = 453.395/453.543/453.710/0.093 ms, pipe 3
|
||||
2026-10-23T22:10:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3827ms rtt min/avg/max/mdev = 463.248/463.358/463.480/0.068 ms, pipe 3
|
||||
2026-10-23T22:10:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3824ms rtt min/avg/max/mdev = 505.318/505.391/505.503/0.051 ms, pipe 3
|
||||
2026-10-23T22:10:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3824ms rtt min/avg/max/mdev = 468.442/468.603/468.754/0.076 ms, pipe 3
|
||||
2026-10-23T22:10:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 472.894/473.047/473.288/0.088 ms, pipe 3
|
||||
2026-10-23T22:10:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3828ms rtt min/avg/max/mdev = 501.514/501.849/502.551/0.284 ms, pipe 3
|
||||
2026-10-23T22:10:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 357.540/358.021/359.723/0.469 ms, pipe 2
|
||||
2026-10-23T22:10:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 390.157/390.243/390.292/0.038 ms, pipe 2
|
||||
2026-10-23T22:10:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 351.997/352.087/352.274/0.062 ms, pipe 2
|
||||
2026-10-23T22:10:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3803ms rtt min/avg/max/mdev = 112.903/112.998/113.196/0.069 ms
|
||||
2026-10-23T22:10:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 53.347/53.460/53.722/0.090 ms
|
||||
2026-10-23T22:10:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3944ms rtt min/avg/max/mdev = 0.486/0.853/5.892/1.158 ms
|
||||
2026-10-23T22:10:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 16.054/16.181/16.371/0.082 ms
|
||||
2026-10-23T22:10:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 334.050/334.116/334.211/0.042 ms, pipe 2
|
||||
2026-10-23T22:10:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 288.069/288.111/288.176/0.023 ms, pipe 2
|
||||
2026-10-23T22:10:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 281.217/281.256/281.329/0.029 ms, pipe 2
|
||||
2026-10-23T22:20:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 362.800/363.046/364.448/0.329 ms, pipe 2
|
||||
2026-10-23T22:20:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 384.283/384.346/384.461/0.040 ms, pipe 2
|
||||
2026-10-23T22:20:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3831ms rtt min/avg/max/mdev = 414.433/414.541/414.811/0.079 ms, pipe 3
|
||||
2026-10-23T22:20:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3949ms rtt min/avg/max/mdev = 0.041/0.099/0.686/0.135 ms
|
||||
2026-10-23T22:20:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 356.907/357.017/357.307/0.099 ms, pipe 2
|
||||
2026-10-23T22:20:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 341.312/341.409/341.732/0.088 ms, pipe 2
|
||||
2026-10-23T22:20:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 303.662/303.737/303.903/0.051 ms, pipe 2
|
||||
2026-10-23T22:20:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 282.428/282.531/282.723/0.061 ms, pipe 2
|
||||
2026-10-23T22:20:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3823ms rtt min/avg/max/mdev = 453.398/453.596/453.864/0.123 ms, pipe 3
|
||||
2026-10-23T22:20:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 463.280/463.382/463.582/0.069 ms, pipe 3
|
||||
2026-10-23T22:20:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 505.260/505.339/505.449/0.051 ms, pipe 3
|
||||
2026-10-23T22:20:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 468.385/468.590/468.838/0.095 ms, pipe 3
|
||||
2026-10-23T22:20:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3829ms rtt min/avg/max/mdev = 473.119/473.389/473.676/0.153 ms, pipe 3
|
||||
2026-10-23T22:20:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 501.558/501.769/502.400/0.189 ms, pipe 3
|
||||
2026-10-23T22:20:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 357.578/357.963/358.539/0.274 ms, pipe 2
|
||||
2026-10-23T22:20:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 390.128/390.247/390.357/0.061 ms, pipe 2
|
||||
2026-10-23T22:20:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 18 received, 10% packet loss, time 3822ms rtt min/avg/max/mdev = 383.305/385.243/386.138/0.718 ms, pipe 2
|
||||
2026-10-23T22:20:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 112.870/112.957/113.091/0.058 ms
|
||||
2026-10-23T22:20:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 53.265/53.423/53.628/0.104 ms
|
||||
2026-10-23T22:20:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3947ms rtt min/avg/max/mdev = 0.494/0.584/0.749/0.066 ms
|
||||
2026-10-23T22:20:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 15.991/16.159/16.705/0.155 ms
|
||||
2026-10-23T22:20:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 334.056/334.133/334.457/0.079 ms, pipe 2
|
||||
2026-10-23T22:20:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 288.076/288.140/288.211/0.036 ms, pipe 2
|
||||
2026-10-23T22:20:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 281.250/281.289/281.325/0.021 ms, pipe 2
|
||||
2026-10-23T22:30:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 362.902/366.567/411.673/11.477 ms, pipe 3
|
||||
2026-10-23T22:30:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 384.312/384.437/385.374/0.223 ms, pipe 2
|
||||
2026-10-23T22:30:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3823ms rtt min/avg/max/mdev = 414.463/414.572/415.097/0.128 ms, pipe 3
|
||||
2026-10-23T22:30:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3945ms rtt min/avg/max/mdev = 0.024/0.054/0.067/0.010 ms
|
||||
2026-10-23T22:30:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 356.932/357.020/357.217/0.067 ms, pipe 2
|
||||
2026-10-23T22:30:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 343.064/343.218/343.974/0.215 ms, pipe 2
|
||||
2026-10-23T22:30:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 303.649/303.745/303.825/0.047 ms, pipe 2
|
||||
2026-10-23T22:30:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 282.467/282.580/283.120/0.141 ms, pipe 2
|
||||
2026-10-23T22:30:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 453.389/453.571/453.849/0.120 ms, pipe 3
|
||||
2026-10-23T22:30:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3829ms rtt min/avg/max/mdev = 463.249/463.336/463.460/0.056 ms, pipe 3
|
||||
2026-10-23T22:30:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3825ms rtt min/avg/max/mdev = 505.327/505.390/505.455/0.036 ms, pipe 3
|
||||
2026-10-23T22:30:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3823ms rtt min/avg/max/mdev = 468.506/468.647/469.064/0.119 ms, pipe 3
|
||||
2026-10-23T22:30:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3823ms rtt min/avg/max/mdev = 472.998/473.231/476.090/0.658 ms, pipe 3
|
||||
2026-10-23T22:30:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3826ms rtt min/avg/max/mdev = 501.547/501.754/502.055/0.119 ms, pipe 3
|
||||
2026-10-23T22:30:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 357.603/357.847/358.349/0.189 ms, pipe 2
|
||||
2026-10-23T22:30:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 390.144/390.238/390.386/0.058 ms, pipe 2
|
||||
2026-10-23T22:30:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 352.032/352.127/352.261/0.052 ms, pipe 2
|
||||
2026-10-23T22:30:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3803ms rtt min/avg/max/mdev = 112.844/112.994/113.167/0.084 ms
|
||||
2026-10-23T22:30:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 53.241/53.412/53.583/0.086 ms
|
||||
2026-10-23T22:30:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3942ms rtt min/avg/max/mdev = 0.502/0.584/0.708/0.050 ms
|
||||
2026-10-23T22:30:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 16.034/16.443/20.568/0.989 ms
|
||||
2026-10-23T22:30:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 334.082/334.139/334.219/0.040 ms, pipe 2
|
||||
2026-10-23T22:30:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 288.011/288.105/288.158/0.038 ms, pipe 2
|
||||
2026-10-23T22:30:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 281.163/281.993/295.390/3.074 ms, pipe 2
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,191 @@
|
||||
2026-10-23T21:21:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 138.424/138.508/138.582/0.042 ms
|
||||
2026-10-23T21:21:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 149.774/149.889/149.994/0.056 ms
|
||||
2026-10-23T21:21:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 303.641/303.790/304.260/0.122 ms, pipe 2
|
||||
2026-10-23T21:21:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3797ms rtt min/avg/max/mdev = 190.676/190.819/191.647/0.257 ms
|
||||
2026-10-23T21:21:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 170.269/170.340/170.590/0.067 ms
|
||||
2026-10-23T21:21:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3950ms rtt min/avg/max/mdev = 0.037/0.065/0.101/0.014 ms
|
||||
2026-10-23T21:21:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 132.564/132.634/132.728/0.044 ms
|
||||
2026-10-23T21:21:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 155.118/155.298/155.523/0.123 ms
|
||||
2026-10-23T21:21:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3805ms rtt min/avg/max/mdev = 166.904/166.993/167.122/0.066 ms
|
||||
2026-10-23T21:21:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3798ms rtt min/avg/max/mdev = 196.037/196.093/196.158/0.033 ms
|
||||
2026-10-23T21:21:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 173.685/173.772/173.896/0.052 ms
|
||||
2026-10-23T21:21:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 146.052/146.163/146.317/0.069 ms
|
||||
2026-10-23T21:21:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 204.965/205.201/207.136/0.451 ms, pipe 2
|
||||
2026-10-23T21:21:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 168.720/169.358/170.696/0.562 ms
|
||||
2026-10-23T21:21:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 196.354/196.407/196.478/0.034 ms
|
||||
2026-10-23T21:21:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3802ms rtt min/avg/max/mdev = 173.973/174.066/174.193/0.050 ms
|
||||
2026-10-23T21:21:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 134.646/134.813/134.989/0.095 ms
|
||||
2026-10-23T21:21:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 208.051/208.098/208.227/0.042 ms, pipe 2
|
||||
2026-10-23T21:21:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 258.107/258.210/258.281/0.049 ms, pipe 2
|
||||
2026-10-23T21:21:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 270.560/270.679/270.817/0.077 ms, pipe 2
|
||||
2026-10-23T21:21:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 184.316/184.377/184.436/0.031 ms
|
||||
2026-10-23T21:21:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 7.974/8.036/8.124/0.035 ms
|
||||
2026-10-23T21:21:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 131.741/131.820/131.926/0.045 ms
|
||||
2026-10-23T21:30:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 54.479/54.604/54.677/0.054 ms
|
||||
2026-10-23T21:30:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 138.409/138.497/138.590/0.043 ms
|
||||
2026-10-23T21:30:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 149.781/149.878/150.039/0.056 ms
|
||||
2026-10-23T21:30:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 303.718/303.811/303.885/0.046 ms, pipe 2
|
||||
2026-10-23T21:30:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 190.673/190.747/190.847/0.047 ms
|
||||
2026-10-23T21:30:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 171.983/172.153/172.898/0.250 ms
|
||||
2026-10-23T21:30:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3952ms rtt min/avg/max/mdev = 0.028/0.054/0.079/0.013 ms
|
||||
2026-10-23T21:30:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3802ms rtt min/avg/max/mdev = 142.984/143.045/143.138/0.041 ms
|
||||
2026-10-23T21:30:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3805ms rtt min/avg/max/mdev = 155.127/155.244/155.521/0.092 ms
|
||||
2026-10-23T21:30:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3802ms rtt min/avg/max/mdev = 166.879/166.977/167.168/0.071 ms
|
||||
2026-10-23T21:30:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 196.027/196.086/196.173/0.040 ms
|
||||
2026-10-23T21:30:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 173.739/173.827/173.950/0.056 ms
|
||||
2026-10-23T21:30:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 145.986/146.115/146.284/0.064 ms
|
||||
2026-10-23T21:30:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 204.965/205.083/205.224/0.068 ms, pipe 2
|
||||
2026-10-23T21:30:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 168.858/169.182/169.841/0.259 ms
|
||||
2026-10-23T21:30:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 196.370/196.418/196.481/0.033 ms
|
||||
2026-10-23T21:30:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 172.368/172.574/172.760/0.112 ms
|
||||
2026-10-23T21:30:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 134.675/134.796/134.903/0.061 ms
|
||||
2026-10-23T21:30:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 207.990/208.096/208.573/0.124 ms, pipe 2
|
||||
2026-10-23T21:30:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 258.093/258.227/258.351/0.057 ms, pipe 2
|
||||
2026-10-23T21:30:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 269.361/269.498/270.061/0.160 ms, pipe 2
|
||||
2026-10-23T21:30:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 184.282/184.359/184.421/0.041 ms
|
||||
2026-10-23T21:30:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 7.984/8.048/8.171/0.041 ms
|
||||
2026-10-23T21:30:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 131.712/131.756/131.841/0.030 ms
|
||||
2026-10-23T21:40:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 54.561/54.674/55.159/0.122 ms
|
||||
2026-10-23T21:40:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 138.412/138.486/138.692/0.067 ms
|
||||
2026-10-23T21:40:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 149.837/149.896/150.000/0.037 ms
|
||||
2026-10-23T21:40:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3823ms rtt min/avg/max/mdev = 303.609/303.735/303.848/0.065 ms, pipe 2
|
||||
2026-10-23T21:40:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 189.951/190.290/195.447/1.184 ms
|
||||
2026-10-23T21:40:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3801ms rtt min/avg/max/mdev = 165.983/166.080/166.180/0.056 ms
|
||||
2026-10-23T21:40:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3951ms rtt min/avg/max/mdev = 0.025/0.034/0.053/0.009 ms
|
||||
2026-10-23T21:40:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3802ms rtt min/avg/max/mdev = 143.037/143.088/143.177/0.041 ms
|
||||
2026-10-23T21:40:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3804ms rtt min/avg/max/mdev = 155.083/155.223/155.487/0.109 ms
|
||||
2026-10-23T21:40:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 166.837/166.936/167.128/0.067 ms
|
||||
2026-10-23T21:40:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3797ms rtt min/avg/max/mdev = 195.987/196.064/196.249/0.057 ms
|
||||
2026-10-23T21:40:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 173.704/173.786/173.947/0.060 ms
|
||||
2026-10-23T21:40:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3803ms rtt min/avg/max/mdev = 145.941/146.080/146.268/0.068 ms
|
||||
2026-10-23T21:40:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3823ms rtt min/avg/max/mdev = 204.953/205.053/205.158/0.047 ms, pipe 2
|
||||
2026-10-23T21:40:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3806ms rtt min/avg/max/mdev = 168.839/169.882/181.944/2.793 ms
|
||||
2026-10-23T21:40:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3797ms rtt min/avg/max/mdev = 196.291/196.399/196.517/0.047 ms
|
||||
2026-10-23T21:40:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3805ms rtt min/avg/max/mdev = 168.053/168.212/169.212/0.234 ms
|
||||
2026-10-23T21:40:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 134.586/134.754/134.906/0.088 ms
|
||||
2026-10-23T21:40:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 207.964/208.042/208.145/0.055 ms, pipe 2
|
||||
2026-10-23T21:40:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 258.115/258.259/259.157/0.214 ms, pipe 2
|
||||
2026-10-23T21:40:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 269.352/269.543/269.955/0.132 ms, pipe 2
|
||||
2026-10-23T21:40:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 184.322/184.372/184.530/0.052 ms
|
||||
2026-10-23T21:40:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 7.998/8.046/8.104/0.030 ms
|
||||
2026-10-23T21:40:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 131.712/131.787/131.889/0.047 ms
|
||||
2026-10-23T21:50:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 54.483/54.636/54.852/0.082 ms
|
||||
2026-10-23T21:50:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 138.383/138.454/138.551/0.034 ms
|
||||
2026-10-23T21:50:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 149.835/149.906/150.016/0.045 ms
|
||||
2026-10-23T21:50:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 303.662/303.776/303.876/0.053 ms, pipe 2
|
||||
2026-10-23T21:50:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3797ms rtt min/avg/max/mdev = 189.931/190.021/190.070/0.034 ms
|
||||
2026-10-23T21:50:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 166.040/166.111/166.196/0.044 ms
|
||||
2026-10-23T21:50:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3949ms rtt min/avg/max/mdev = 0.027/0.054/0.090/0.014 ms
|
||||
2026-10-23T21:50:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 131.726/131.829/131.950/0.053 ms
|
||||
2026-10-23T21:50:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 155.200/155.381/155.617/0.115 ms
|
||||
2026-10-23T21:50:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3803ms rtt min/avg/max/mdev = 166.865/166.937/167.029/0.046 ms
|
||||
2026-10-23T21:50:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 196.013/196.090/196.157/0.037 ms
|
||||
2026-10-23T21:50:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 173.684/173.788/173.946/0.064 ms
|
||||
2026-10-23T21:50:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 146.083/146.215/146.359/0.078 ms
|
||||
2026-10-23T21:50:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 204.990/205.149/205.376/0.085 ms, pipe 2
|
||||
2026-10-23T21:50:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 168.967/169.322/170.164/0.307 ms
|
||||
2026-10-23T21:50:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 196.382/196.444/196.540/0.039 ms
|
||||
2026-10-23T21:50:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 168.102/168.214/168.471/0.074 ms
|
||||
2026-10-23T21:50:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 134.644/134.767/134.918/0.077 ms
|
||||
2026-10-23T21:50:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3952ms rtt min/avg/max/mdev = 208.004/208.068/208.187/0.050 ms, pipe 2
|
||||
2026-10-23T21:50:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 258.110/258.236/258.568/0.094 ms, pipe 2
|
||||
2026-10-23T21:50:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 269.364/272.797/333.808/13.998 ms, pipe 2
|
||||
2026-10-23T21:50:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 184.293/184.364/184.441/0.036 ms
|
||||
2026-10-23T21:50:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 7.974/8.035/8.108/0.032 ms
|
||||
2026-10-23T21:50:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 131.731/131.811/131.896/0.038 ms
|
||||
2026-10-23T22:00:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 54.486/54.626/54.762/0.070 ms
|
||||
2026-10-23T22:00:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 138.414/138.485/138.564/0.038 ms
|
||||
2026-10-23T22:00:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 149.774/149.875/149.985/0.050 ms
|
||||
2026-10-23T22:00:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 303.697/303.770/303.873/0.046 ms, pipe 2
|
||||
2026-10-23T22:00:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 189.968/190.031/190.116/0.039 ms
|
||||
2026-10-23T22:00:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3805ms rtt min/avg/max/mdev = 166.009/166.100/166.268/0.051 ms
|
||||
2026-10-23T22:00:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3948ms rtt min/avg/max/mdev = 0.028/0.038/0.061/0.008 ms
|
||||
2026-10-23T22:00:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3802ms rtt min/avg/max/mdev = 135.912/136.051/136.174/0.064 ms
|
||||
2026-10-23T22:00:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3806ms rtt min/avg/max/mdev = 155.118/155.287/155.458/0.109 ms
|
||||
2026-10-23T22:00:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3803ms rtt min/avg/max/mdev = 166.884/166.964/167.064/0.056 ms
|
||||
2026-10-23T22:00:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 195.999/196.052/196.106/0.029 ms
|
||||
2026-10-23T22:00:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 173.574/173.749/173.989/0.078 ms
|
||||
2026-10-23T22:00:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 145.996/146.124/146.196/0.053 ms
|
||||
2026-10-23T22:00:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 204.991/205.076/205.251/0.058 ms, pipe 2
|
||||
2026-10-23T22:00:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 168.970/169.266/170.610/0.374 ms
|
||||
2026-10-23T22:00:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 196.867/196.972/197.098/0.054 ms
|
||||
2026-10-23T22:00:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 166.385/166.491/166.691/0.069 ms
|
||||
2026-10-23T22:00:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 134.633/134.790/135.117/0.104 ms
|
||||
2026-10-23T22:00:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 207.974/208.076/208.199/0.057 ms, pipe 2
|
||||
2026-10-23T22:00:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 258.142/258.252/258.374/0.056 ms, pipe 2
|
||||
2026-10-23T22:00:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 269.955/270.139/270.507/0.137 ms, pipe 2
|
||||
2026-10-23T22:00:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 184.295/184.360/184.462/0.042 ms
|
||||
2026-10-23T22:00:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 7.981/8.053/8.133/0.033 ms
|
||||
2026-10-23T22:00:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 131.751/131.812/131.911/0.047 ms
|
||||
2026-10-23T22:10:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 54.517/54.609/54.756/0.063 ms
|
||||
2026-10-23T22:10:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 138.443/138.495/138.537/0.025 ms
|
||||
2026-10-23T22:10:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 149.819/149.901/150.049/0.062 ms
|
||||
2026-10-23T22:10:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 303.706/303.752/303.831/0.035 ms, pipe 2
|
||||
2026-10-23T22:10:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 190.542/190.600/190.737/0.046 ms
|
||||
2026-10-23T22:10:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3803ms rtt min/avg/max/mdev = 166.044/166.113/166.411/0.081 ms
|
||||
2026-10-23T22:10:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3951ms rtt min/avg/max/mdev = 0.028/0.051/0.078/0.014 ms
|
||||
2026-10-23T22:10:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 141.171/141.235/141.316/0.046 ms
|
||||
2026-10-23T22:10:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 155.152/155.281/155.445/0.091 ms
|
||||
2026-10-23T22:10:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3802ms rtt min/avg/max/mdev = 166.870/166.959/167.078/0.048 ms
|
||||
2026-10-23T22:10:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 196.034/196.109/196.403/0.077 ms
|
||||
2026-10-23T22:10:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 173.675/173.754/173.822/0.043 ms
|
||||
2026-10-23T22:10:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3803ms rtt min/avg/max/mdev = 145.990/146.110/146.275/0.071 ms
|
||||
2026-10-23T22:10:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 204.973/205.097/205.419/0.099 ms, pipe 2
|
||||
2026-10-23T22:10:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3806ms rtt min/avg/max/mdev = 168.787/169.657/173.376/1.016 ms
|
||||
2026-10-23T22:10:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 196.875/196.979/197.098/0.046 ms
|
||||
2026-10-23T22:10:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 172.264/172.367/172.426/0.042 ms
|
||||
2026-10-23T22:10:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 134.642/134.793/134.927/0.060 ms
|
||||
2026-10-23T22:10:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 207.991/208.076/208.221/0.057 ms, pipe 2
|
||||
2026-10-23T22:10:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 258.125/258.226/258.347/0.060 ms, pipe 2
|
||||
2026-10-23T22:10:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 269.976/270.087/270.218/0.066 ms, pipe 2
|
||||
2026-10-23T22:10:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3806ms rtt min/avg/max/mdev = 184.253/184.338/184.452/0.049 ms
|
||||
2026-10-23T22:10:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 7.982/8.036/8.124/0.042 ms
|
||||
2026-10-23T22:10:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 131.689/131.742/131.823/0.034 ms
|
||||
2026-10-23T22:20:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 54.532/54.622/54.841/0.065 ms
|
||||
2026-10-23T22:20:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 138.362/138.458/138.548/0.046 ms
|
||||
2026-10-23T22:20:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 149.789/149.928/150.493/0.136 ms
|
||||
2026-10-23T22:20:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 303.714/303.788/303.861/0.036 ms, pipe 2
|
||||
2026-10-23T22:20:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3798ms rtt min/avg/max/mdev = 190.542/190.646/191.616/0.225 ms
|
||||
2026-10-23T22:20:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3802ms rtt min/avg/max/mdev = 171.987/172.081/172.154/0.048 ms
|
||||
2026-10-23T22:20:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3948ms rtt min/avg/max/mdev = 0.032/0.062/0.108/0.023 ms
|
||||
2026-10-23T22:20:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 131.672/131.760/131.842/0.045 ms
|
||||
2026-10-23T22:20:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3805ms rtt min/avg/max/mdev = 155.125/155.281/155.486/0.108 ms
|
||||
2026-10-23T22:20:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3804ms rtt min/avg/max/mdev = 166.846/166.979/167.270/0.105 ms
|
||||
2026-10-23T22:20:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 195.987/196.074/196.173/0.048 ms
|
||||
2026-10-23T22:20:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 173.668/173.792/173.996/0.071 ms
|
||||
2026-10-23T22:20:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 146.092/146.462/146.810/0.212 ms
|
||||
2026-10-23T22:20:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 205.006/205.120/205.225/0.066 ms, pipe 2
|
||||
2026-10-23T22:20:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 169.023/169.478/170.844/0.429 ms
|
||||
2026-10-23T22:20:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3799ms rtt min/avg/max/mdev = 196.907/197.007/197.089/0.049 ms
|
||||
2026-10-23T22:20:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 166.410/166.489/166.670/0.062 ms
|
||||
2026-10-23T22:20:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 134.640/134.771/134.888/0.076 ms
|
||||
2026-10-23T22:20:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 207.989/208.105/208.210/0.060 ms, pipe 2
|
||||
2026-10-23T22:20:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 258.210/258.299/258.587/0.086 ms, pipe 2
|
||||
2026-10-23T22:20:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 269.926/270.015/270.323/0.102 ms, pipe 2
|
||||
2026-10-23T22:20:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3806ms rtt min/avg/max/mdev = 184.288/184.336/184.434/0.037 ms
|
||||
2026-10-23T22:20:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 7.977/8.033/8.160/0.042 ms
|
||||
2026-10-23T22:20:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 131.692/131.768/131.839/0.045 ms
|
||||
2026-10-23T22:30:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 54.534/54.609/54.709/0.047 ms
|
||||
2026-10-23T22:30:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 138.412/138.493/138.582/0.042 ms
|
||||
2026-10-23T22:30:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 149.835/150.434/160.643/2.342 ms
|
||||
2026-10-23T22:30:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 303.665/303.739/303.826/0.038 ms, pipe 2
|
||||
2026-10-23T22:30:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 190.571/190.637/190.706/0.039 ms
|
||||
2026-10-23T22:30:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 173.706/173.833/174.563/0.182 ms
|
||||
2026-10-23T22:30:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3948ms rtt min/avg/max/mdev = 0.025/0.050/0.082/0.015 ms
|
||||
2026-10-23T22:30:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 137.844/137.972/138.836/0.207 ms
|
||||
2026-10-23T22:30:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3806ms rtt min/avg/max/mdev = 155.143/155.241/155.422/0.074 ms
|
||||
2026-10-23T22:30:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3801ms rtt min/avg/max/mdev = 166.927/166.976/167.128/0.048 ms
|
||||
2026-10-23T22:30:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3797ms rtt min/avg/max/mdev = 196.024/196.109/196.174/0.038 ms
|
||||
2026-10-23T22:30:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 173.701/173.790/173.962/0.057 ms
|
||||
2026-10-23T22:30:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3804ms rtt min/avg/max/mdev = 146.008/146.132/146.232/0.055 ms
|
||||
2026-10-23T22:30:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 204.958/205.219/207.722/0.577 ms, pipe 2
|
||||
2026-10-23T22:30:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3805ms rtt min/avg/max/mdev = 168.897/169.337/170.244/0.430 ms
|
||||
2026-10-23T22:30:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3797ms rtt min/avg/max/mdev = 196.884/196.946/197.022/0.030 ms
|
||||
2026-10-23T22:30:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3805ms rtt min/avg/max/mdev = 168.041/168.168/168.295/0.068 ms
|
||||
2026-10-23T22:30:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 134.648/134.789/134.907/0.060 ms
|
||||
2026-10-23T22:30:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 207.990/208.121/208.266/0.072 ms, pipe 2
|
||||
2026-10-23T22:30:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 258.158/258.243/258.343/0.048 ms, pipe 2
|
||||
2026-10-23T22:30:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 272.071/272.208/272.530/0.108 ms, pipe 2
|
||||
2026-10-23T22:30:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 184.302/184.361/184.439/0.038 ms
|
||||
2026-10-23T22:30:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 7.975/8.031/8.128/0.040 ms
|
||||
2026-10-23T22:30:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 131.669/131.776/131.837/0.038 ms
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,191 @@
|
||||
2026-10-23T21:20:12Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 11.273/11.320/11.400/0.032 ms
|
||||
2026-10-23T21:20:12Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3951ms rtt min/avg/max/mdev = 0.073/0.086/0.198/0.026 ms
|
||||
2026-10-23T21:20:12Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3827ms rtt min/avg/max/mdev = 414.442/414.516/414.698/0.055 ms, pipe 3
|
||||
2026-10-23T21:20:12Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 336.896/336.988/337.079/0.048 ms, pipe 2
|
||||
2026-10-23T21:20:12Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 317.997/318.081/318.707/0.147 ms, pipe 2
|
||||
2026-10-23T21:20:12Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 149.750/149.869/149.959/0.054 ms
|
||||
2026-10-23T21:20:12Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 159.165/159.241/159.435/0.054 ms
|
||||
2026-10-23T21:20:12Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 12.313/12.491/12.701/0.107 ms
|
||||
2026-10-23T21:20:12Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 1.381/1.477/1.774/0.111 ms
|
||||
2026-10-23T21:20:12Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 38.728/38.800/38.893/0.036 ms
|
||||
2026-10-23T21:20:12Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 23.145/23.276/23.524/0.102 ms
|
||||
2026-10-23T21:20:12Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 135.721/135.845/135.961/0.070 ms
|
||||
2026-10-23T21:20:12Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 55.732/56.172/58.016/0.605 ms
|
||||
2026-10-23T21:20:12Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 19 received, 5% packet loss, time 3814ms rtt min/avg/max/mdev = 321.958/323.121/335.405/2.937 ms, pipe 2
|
||||
2026-10-23T21:20:12Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 340.361/340.442/340.506/0.042 ms, pipe 2
|
||||
2026-10-23T21:20:12Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 326.177/326.296/326.408/0.058 ms, pipe 2
|
||||
2026-10-23T21:20:12Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 344.918/345.050/345.193/0.086 ms, pipe 2
|
||||
2026-10-23T21:20:12Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 390.839/390.988/391.335/0.105 ms, pipe 2
|
||||
2026-10-23T21:20:12Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3823ms rtt min/avg/max/mdev = 468.665/468.776/468.875/0.063 ms, pipe 3
|
||||
2026-10-23T21:20:12Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 427.933/428.186/428.932/0.231 ms, pipe 3
|
||||
2026-10-23T21:20:12Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 19 received, 5% packet loss, time 3826ms rtt min/avg/max/mdev = 317.082/319.794/323.131/2.715 ms, pipe 2
|
||||
2026-10-23T21:20:12Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 152.686/152.721/152.748/0.016 ms
|
||||
2026-10-23T21:20:12Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 140.393/140.458/140.526/0.031 ms
|
||||
2026-10-23T21:30:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3801ms rtt min/avg/max/mdev = 199.335/199.592/203.025/0.788 ms
|
||||
2026-10-23T21:30:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 11.217/11.299/11.392/0.040 ms
|
||||
2026-10-23T21:30:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3946ms rtt min/avg/max/mdev = 0.027/0.060/0.083/0.017 ms
|
||||
2026-10-23T21:30:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3827ms rtt min/avg/max/mdev = 414.430/414.549/414.666/0.064 ms, pipe 3
|
||||
2026-10-23T21:30:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 336.832/336.943/337.059/0.051 ms, pipe 2
|
||||
2026-10-23T21:30:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 321.379/321.597/323.060/0.421 ms, pipe 2
|
||||
2026-10-23T21:30:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 149.762/149.836/149.932/0.046 ms
|
||||
2026-10-23T21:30:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3804ms rtt min/avg/max/mdev = 159.146/159.243/159.848/0.149 ms
|
||||
2026-10-23T21:30:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 12.279/12.419/12.659/0.108 ms
|
||||
2026-10-23T21:30:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 1.361/1.432/1.546/0.048 ms
|
||||
2026-10-23T21:30:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 38.707/38.757/38.853/0.032 ms
|
||||
2026-10-23T21:30:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 23.231/23.327/23.473/0.059 ms
|
||||
2026-10-23T21:30:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 135.653/135.759/135.888/0.059 ms
|
||||
2026-10-23T21:30:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 55.791/55.894/56.107/0.063 ms
|
||||
2026-10-23T21:30:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 321.929/322.378/323.165/0.385 ms, pipe 2
|
||||
2026-10-23T21:30:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 340.334/340.403/340.530/0.052 ms, pipe 2
|
||||
2026-10-23T21:30:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 335.566/335.746/335.957/0.117 ms, pipe 2
|
||||
2026-10-23T21:30:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 344.889/345.000/345.137/0.065 ms, pipe 2
|
||||
2026-10-23T21:30:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 390.794/390.984/391.182/0.103 ms, pipe 2
|
||||
2026-10-23T21:30:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 468.645/468.748/468.840/0.054 ms, pipe 3
|
||||
2026-10-23T21:30:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3825ms rtt min/avg/max/mdev = 427.921/428.053/428.383/0.133 ms, pipe 3
|
||||
2026-10-23T21:30:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 317.041/317.100/317.212/0.037 ms, pipe 2
|
||||
2026-10-23T21:30:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 152.667/152.718/152.982/0.066 ms
|
||||
2026-10-23T21:30:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 140.364/140.427/140.478/0.031 ms
|
||||
2026-10-23T21:40:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3798ms rtt min/avg/max/mdev = 199.330/199.444/199.605/0.070 ms
|
||||
2026-10-23T21:40:00Z syd 207.148.81.200 20 packets transmitted, 19 received, 5% packet loss, time 3815ms rtt min/avg/max/mdev = 11.128/11.215/11.352/0.050 ms
|
||||
2026-10-23T21:40:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3947ms rtt min/avg/max/mdev = 0.027/0.064/0.113/0.019 ms
|
||||
2026-10-23T21:40:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 414.457/414.546/414.657/0.052 ms, pipe 3
|
||||
2026-10-23T21:40:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 337.082/337.396/341.072/0.863 ms, pipe 2
|
||||
2026-10-23T21:40:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 319.677/319.725/319.796/0.034 ms, pipe 2
|
||||
2026-10-23T21:40:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 149.700/149.809/149.932/0.057 ms
|
||||
2026-10-23T21:40:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 156.521/156.578/156.656/0.037 ms
|
||||
2026-10-23T21:40:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 12.244/12.354/12.511/0.083 ms
|
||||
2026-10-23T21:40:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 1.278/1.388/1.500/0.052 ms
|
||||
2026-10-23T21:40:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 38.641/38.699/38.773/0.036 ms
|
||||
2026-10-23T21:40:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 23.087/23.237/23.357/0.066 ms
|
||||
2026-10-23T21:40:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 135.665/135.728/135.814/0.043 ms
|
||||
2026-10-23T21:40:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 55.779/55.872/56.013/0.050 ms
|
||||
2026-10-23T21:40:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 321.867/322.309/323.788/0.517 ms, pipe 2
|
||||
2026-10-23T21:40:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 340.363/340.443/340.722/0.077 ms, pipe 2
|
||||
2026-10-23T21:40:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 332.078/332.149/332.207/0.038 ms, pipe 2
|
||||
2026-10-23T21:40:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 344.787/344.978/345.164/0.093 ms, pipe 2
|
||||
2026-10-23T21:40:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 390.829/390.978/391.221/0.092 ms, pipe 2
|
||||
2026-10-23T21:40:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3823ms rtt min/avg/max/mdev = 468.690/468.741/468.860/0.041 ms, pipe 3
|
||||
2026-10-23T21:40:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 426.773/427.974/446.389/4.238 ms, pipe 3
|
||||
2026-10-23T21:40:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 19 received, 5% packet loss, time 3818ms rtt min/avg/max/mdev = 317.066/321.522/323.018/2.326 ms, pipe 2
|
||||
2026-10-23T21:40:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 152.660/152.705/152.792/0.032 ms
|
||||
2026-10-23T21:40:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 140.308/140.384/140.435/0.032 ms
|
||||
2026-10-23T21:50:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3798ms rtt min/avg/max/mdev = 199.289/199.460/199.658/0.093 ms
|
||||
2026-10-23T21:50:00Z syd 207.148.81.200 20 packets transmitted, 19 received, 5% packet loss, time 3819ms rtt min/avg/max/mdev = 11.261/11.348/11.465/0.046 ms
|
||||
2026-10-23T21:50:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3950ms rtt min/avg/max/mdev = 0.023/0.062/0.133/0.022 ms
|
||||
2026-10-23T21:50:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 414.422/414.487/414.594/0.044 ms, pipe 3
|
||||
2026-10-23T21:50:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 337.066/337.109/337.222/0.040 ms, pipe 2
|
||||
2026-10-23T21:50:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 325.599/325.675/325.756/0.041 ms, pipe 2
|
||||
2026-10-23T21:50:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 149.718/149.829/150.006/0.075 ms
|
||||
2026-10-23T21:50:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 159.161/159.319/160.241/0.222 ms
|
||||
2026-10-23T21:50:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 12.253/12.414/12.795/0.134 ms
|
||||
2026-10-23T21:50:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 1.353/1.477/1.689/0.070 ms
|
||||
2026-10-23T21:50:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 38.732/38.861/39.431/0.142 ms
|
||||
2026-10-23T21:50:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 23.289/23.374/23.492/0.052 ms
|
||||
2026-10-23T21:50:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 135.764/135.881/136.045/0.067 ms
|
||||
2026-10-23T21:50:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 55.825/55.926/56.094/0.076 ms
|
||||
2026-10-23T21:50:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 321.932/322.322/323.101/0.308 ms, pipe 2
|
||||
2026-10-23T21:50:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 340.385/340.456/340.581/0.047 ms, pipe 2
|
||||
2026-10-23T21:50:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 333.849/333.959/334.140/0.069 ms, pipe 2
|
||||
2026-10-23T21:50:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 344.899/344.998/345.186/0.087 ms, pipe 2
|
||||
2026-10-23T21:50:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 390.818/391.017/391.207/0.115 ms, pipe 2
|
||||
2026-10-23T21:50:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3823ms rtt min/avg/max/mdev = 468.654/468.772/468.918/0.068 ms, pipe 3
|
||||
2026-10-23T21:50:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 427.968/428.121/428.689/0.183 ms, pipe 3
|
||||
2026-10-23T21:50:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 317.065/317.092/317.144/0.017 ms, pipe 2
|
||||
2026-10-23T21:50:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 152.665/152.730/153.197/0.110 ms
|
||||
2026-10-23T21:50:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 140.337/140.438/140.548/0.043 ms
|
||||
2026-10-23T22:00:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3804ms rtt min/avg/max/mdev = 199.308/199.802/206.342/1.502 ms, pipe 2
|
||||
2026-10-23T22:00:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 11.252/11.334/11.418/0.038 ms
|
||||
2026-10-23T22:00:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3950ms rtt min/avg/max/mdev = 0.041/0.065/0.083/0.011 ms
|
||||
2026-10-23T22:00:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3827ms rtt min/avg/max/mdev = 414.411/414.526/414.599/0.059 ms, pipe 3
|
||||
2026-10-23T22:00:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 337.077/338.793/369.337/7.007 ms, pipe 2
|
||||
2026-10-23T22:00:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 323.950/324.013/324.155/0.047 ms, pipe 2
|
||||
2026-10-23T22:00:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 149.727/149.829/150.101/0.082 ms
|
||||
2026-10-23T22:00:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 156.571/156.622/156.714/0.035 ms
|
||||
2026-10-23T22:00:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 12.322/12.460/12.692/0.114 ms
|
||||
2026-10-23T22:00:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 1.366/1.454/1.671/0.065 ms
|
||||
2026-10-23T22:00:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 38.631/38.733/38.823/0.047 ms
|
||||
2026-10-23T22:00:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 23.136/23.307/23.438/0.064 ms
|
||||
2026-10-23T22:00:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 135.681/135.823/136.016/0.090 ms
|
||||
2026-10-23T22:00:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 55.780/55.883/56.079/0.062 ms
|
||||
2026-10-23T22:00:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 322.073/322.924/330.040/1.705 ms, pipe 2
|
||||
2026-10-23T22:00:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 340.395/340.454/340.537/0.035 ms, pipe 2
|
||||
2026-10-23T22:00:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 327.725/327.843/327.957/0.067 ms, pipe 2
|
||||
2026-10-23T22:00:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 344.893/344.985/345.252/0.082 ms, pipe 2
|
||||
2026-10-23T22:00:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 390.835/391.020/391.408/0.122 ms, pipe 2
|
||||
2026-10-23T22:00:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3828ms rtt min/avg/max/mdev = 468.651/468.743/468.820/0.042 ms, pipe 3
|
||||
2026-10-23T22:00:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3823ms rtt min/avg/max/mdev = 425.681/425.980/427.028/0.345 ms, pipe 3
|
||||
2026-10-23T22:00:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 317.051/317.112/317.145/0.025 ms, pipe 2
|
||||
2026-10-23T22:00:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 152.680/152.730/152.782/0.027 ms
|
||||
2026-10-23T22:00:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 140.422/140.475/140.524/0.032 ms
|
||||
2026-10-23T22:10:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3798ms rtt min/avg/max/mdev = 199.360/199.453/199.712/0.072 ms
|
||||
2026-10-23T22:10:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 11.247/11.323/11.413/0.041 ms
|
||||
2026-10-23T22:10:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3944ms rtt min/avg/max/mdev = 0.033/0.060/0.082/0.012 ms
|
||||
2026-10-23T22:10:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3827ms rtt min/avg/max/mdev = 414.433/414.521/414.634/0.048 ms, pipe 3
|
||||
2026-10-23T22:10:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 336.341/336.430/336.638/0.086 ms, pipe 2
|
||||
2026-10-23T22:10:00Z sao 216.128.173.160 20 packets transmitted, 19 received, 5% packet loss, time 3820ms rtt min/avg/max/mdev = 327.340/327.418/327.584/0.057 ms, pipe 2
|
||||
2026-10-23T22:10:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 149.773/149.855/149.949/0.047 ms
|
||||
2026-10-23T22:10:00Z icn 141.164.52.85 20 packets transmitted, 19 received, 5% packet loss, time 3812ms rtt min/avg/max/mdev = 153.901/154.359/158.877/1.134 ms
|
||||
2026-10-23T22:10:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 12.241/12.435/12.594/0.091 ms
|
||||
2026-10-23T22:10:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 1.317/1.427/1.595/0.076 ms
|
||||
2026-10-23T22:10:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 38.705/38.783/39.165/0.093 ms
|
||||
2026-10-23T22:10:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 23.210/23.278/23.366/0.043 ms
|
||||
2026-10-23T22:10:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 135.656/135.740/135.833/0.048 ms
|
||||
2026-10-23T22:10:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 55.822/55.876/55.965/0.043 ms
|
||||
2026-10-23T22:10:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 321.884/322.989/329.452/1.662 ms, pipe 2
|
||||
2026-10-23T22:10:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 340.370/340.461/340.715/0.073 ms, pipe 2
|
||||
2026-10-23T22:10:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 333.619/333.714/333.804/0.045 ms, pipe 2
|
||||
2026-10-23T22:10:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 344.883/345.019/345.171/0.076 ms, pipe 2
|
||||
2026-10-23T22:10:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 390.776/391.002/391.489/0.144 ms, pipe 2
|
||||
2026-10-23T22:10:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 467.876/467.961/468.154/0.066 ms, pipe 3
|
||||
2026-10-23T22:10:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3826ms rtt min/avg/max/mdev = 426.851/427.007/427.324/0.136 ms, pipe 3
|
||||
2026-10-23T22:10:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 18 received, 10% packet loss, time 3819ms rtt min/avg/max/mdev = 323.033/323.252/323.438/0.104 ms, pipe 2
|
||||
2026-10-23T22:10:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 152.633/152.739/152.814/0.047 ms
|
||||
2026-10-23T22:10:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 140.350/140.399/140.436/0.028 ms
|
||||
2026-10-23T22:20:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3798ms rtt min/avg/max/mdev = 199.289/199.419/199.491/0.055 ms
|
||||
2026-10-23T22:20:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 11.243/11.319/11.391/0.040 ms
|
||||
2026-10-23T22:20:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3952ms rtt min/avg/max/mdev = 0.049/0.068/0.088/0.010 ms
|
||||
2026-10-23T22:20:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 414.429/415.312/430.193/3.414 ms, pipe 3
|
||||
2026-10-23T22:20:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 336.329/336.399/336.500/0.040 ms, pipe 2
|
||||
2026-10-23T22:20:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 325.620/325.708/325.908/0.077 ms, pipe 2
|
||||
2026-10-23T22:20:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 149.741/149.808/149.882/0.042 ms
|
||||
2026-10-23T22:20:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 159.192/159.300/159.475/0.062 ms
|
||||
2026-10-23T22:20:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 12.326/12.506/12.698/0.129 ms
|
||||
2026-10-23T22:20:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 1.349/1.442/1.544/0.064 ms
|
||||
2026-10-23T22:20:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 38.685/38.765/38.916/0.051 ms
|
||||
2026-10-23T22:20:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 23.210/23.315/23.423/0.064 ms
|
||||
2026-10-23T22:20:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 135.820/136.169/136.640/0.232 ms
|
||||
2026-10-23T22:20:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 55.853/55.934/56.048/0.053 ms
|
||||
2026-10-23T22:20:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 321.945/322.270/323.491/0.364 ms, pipe 2
|
||||
2026-10-23T22:20:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 340.364/340.475/340.738/0.081 ms, pipe 2
|
||||
2026-10-23T22:20:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 329.616/329.727/329.876/0.063 ms, pipe 2
|
||||
2026-10-23T22:20:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 344.921/345.037/345.250/0.098 ms, pipe 2
|
||||
2026-10-23T22:20:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 390.801/391.033/391.277/0.111 ms, pipe 2
|
||||
2026-10-23T22:20:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3828ms rtt min/avg/max/mdev = 467.933/468.040/468.175/0.052 ms, pipe 3
|
||||
2026-10-23T22:20:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3825ms rtt min/avg/max/mdev = 427.392/429.843/474.179/10.171 ms, pipe 3
|
||||
2026-10-23T22:20:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 16 received, 20% packet loss, time 3838ms rtt min/avg/max/mdev = 323.076/323.215/323.378/0.095 ms, pipe 2
|
||||
2026-10-23T22:20:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 152.673/152.742/152.799/0.027 ms
|
||||
2026-10-23T22:20:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 140.408/140.440/140.494/0.026 ms
|
||||
2026-10-23T22:30:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3800ms rtt min/avg/max/mdev = 199.348/199.479/199.756/0.090 ms
|
||||
2026-10-23T22:30:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 11.223/11.271/11.344/0.033 ms
|
||||
2026-10-23T22:30:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3949ms rtt min/avg/max/mdev = 0.044/0.069/0.083/0.010 ms
|
||||
2026-10-23T22:30:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 414.384/414.508/414.606/0.050 ms, pipe 3
|
||||
2026-10-23T22:30:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 336.321/336.386/336.566/0.050 ms, pipe 2
|
||||
2026-10-23T22:30:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 325.606/325.778/327.275/0.345 ms, pipe 2
|
||||
2026-10-23T22:30:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 149.794/149.866/149.963/0.041 ms
|
||||
2026-10-23T22:30:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 159.229/160.013/164.983/1.421 ms
|
||||
2026-10-23T22:30:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 12.280/12.410/12.573/0.070 ms
|
||||
2026-10-23T22:30:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 1.361/1.453/1.678/0.065 ms
|
||||
2026-10-23T22:30:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 38.723/38.765/38.822/0.030 ms
|
||||
2026-10-23T22:30:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 23.242/23.309/23.418/0.043 ms
|
||||
2026-10-23T22:30:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 135.698/135.805/136.057/0.073 ms
|
||||
2026-10-23T22:30:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 55.774/56.004/58.385/0.549 ms
|
||||
2026-10-23T22:30:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 321.954/322.235/322.981/0.344 ms, pipe 2
|
||||
2026-10-23T22:30:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 340.352/340.432/340.499/0.046 ms, pipe 2
|
||||
2026-10-23T22:30:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 333.686/333.763/333.857/0.042 ms, pipe 2
|
||||
2026-10-23T22:30:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 344.822/344.959/345.108/0.081 ms, pipe 2
|
||||
2026-10-23T22:30:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 390.980/391.192/391.666/0.142 ms, pipe 2
|
||||
2026-10-23T22:30:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3828ms rtt min/avg/max/mdev = 467.947/468.008/468.056/0.031 ms, pipe 3
|
||||
2026-10-23T22:30:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3830ms rtt min/avg/max/mdev = 427.975/428.119/428.769/0.166 ms, pipe 3
|
||||
2026-10-23T22:30:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 16 received, 20% packet loss, time 3833ms rtt min/avg/max/mdev = 323.126/323.262/323.392/0.091 ms, pipe 2
|
||||
2026-10-23T22:30:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 152.692/152.745/152.829/0.031 ms
|
||||
2026-10-23T22:30:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 140.342/140.464/140.537/0.052 ms
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,191 @@
|
||||
2026-10-23T21:20:53Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 313.020/313.069/313.147/0.031 ms, pipe 2
|
||||
2026-10-23T21:20:53Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 317.953/318.032/318.121/0.036 ms, pipe 2
|
||||
2026-10-23T21:20:53Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 345.223/345.278/345.447/0.056 ms, pipe 2
|
||||
2026-10-23T21:20:53Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 46.099/46.193/46.427/0.074 ms
|
||||
2026-10-23T21:20:53Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3946ms rtt min/avg/max/mdev = 0.040/0.052/0.071/0.008 ms
|
||||
2026-10-23T21:20:53Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 170.281/170.365/170.465/0.047 ms
|
||||
2026-10-23T21:20:53Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 308.327/308.410/309.160/0.174 ms, pipe 2
|
||||
2026-10-23T21:20:53Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 329.457/329.715/330.570/0.224 ms, pipe 2
|
||||
2026-10-23T21:20:53Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3805ms rtt min/avg/max/mdev = 344.584/344.697/344.868/0.075 ms, pipe 2
|
||||
2026-10-23T21:20:53Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 377.949/378.022/378.114/0.039 ms, pipe 2
|
||||
2026-10-23T21:20:53Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 351.811/351.894/351.994/0.050 ms, pipe 2
|
||||
2026-10-23T21:20:53Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 318.310/318.365/318.452/0.034 ms, pipe 2
|
||||
2026-10-23T21:20:53Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 377.593/377.753/377.869/0.068 ms, pipe 2
|
||||
2026-10-23T21:20:53Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 131.769/132.081/133.457/0.388 ms
|
||||
2026-10-23T21:20:53Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 130.638/130.704/130.904/0.059 ms
|
||||
2026-10-23T21:20:53Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 1.146/1.245/1.361/0.044 ms
|
||||
2026-10-23T21:20:53Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 46.579/46.771/47.241/0.136 ms
|
||||
2026-10-23T21:20:53Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 0 received, 100% packet loss, time 3949ms
|
||||
2026-10-23T21:20:53Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 0 received, 100% packet loss, time 3947ms
|
||||
2026-10-23T21:20:53Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 323.722/323.828/324.203/0.108 ms, pipe 2
|
||||
2026-10-23T21:20:53Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 347.395/364.227/683.226/73.183 ms, pipe 2
|
||||
2026-10-23T21:20:53Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 173.336/173.418/173.842/0.104 ms
|
||||
2026-10-23T21:20:53Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 312.765/312.873/313.479/0.144 ms, pipe 2
|
||||
2026-10-23T21:30:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 216.271/218.299/254.416/8.286 ms, pipe 2
|
||||
2026-10-23T21:30:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 314.717/314.891/315.588/0.249 ms, pipe 2
|
||||
2026-10-23T21:30:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 321.382/321.826/326.217/1.046 ms, pipe 2
|
||||
2026-10-23T21:30:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 341.381/342.136/353.618/2.642 ms, pipe 2
|
||||
2026-10-23T21:30:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 46.127/46.345/47.177/0.308 ms
|
||||
2026-10-23T21:30:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3951ms rtt min/avg/max/mdev = 0.041/0.058/0.085/0.012 ms
|
||||
2026-10-23T21:30:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 171.970/224.747/731.136/141.552 ms, pipe 3
|
||||
2026-10-23T21:30:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 312.742/312.819/313.095/0.089 ms, pipe 2
|
||||
2026-10-23T21:30:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 329.443/329.653/330.191/0.168 ms, pipe 2
|
||||
2026-10-23T21:30:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 346.303/346.405/346.548/0.074 ms, pipe 2
|
||||
2026-10-23T21:30:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 377.975/378.193/380.875/0.624 ms, pipe 2
|
||||
2026-10-23T21:30:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 350.087/350.187/350.543/0.096 ms, pipe 2
|
||||
2026-10-23T21:30:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 316.560/316.743/317.592/0.249 ms, pipe 2
|
||||
2026-10-23T21:30:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 377.616/377.821/378.754/0.249 ms, pipe 2
|
||||
2026-10-23T21:30:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3805ms rtt min/avg/max/mdev = 131.832/132.178/132.695/0.215 ms
|
||||
2026-10-23T21:30:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 130.656/130.727/130.835/0.038 ms
|
||||
2026-10-23T21:30:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 1.298/1.529/2.390/0.312 ms
|
||||
2026-10-23T21:30:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 46.706/46.855/47.270/0.134 ms
|
||||
2026-10-23T21:30:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 0 received, 100% packet loss, time 3947ms
|
||||
2026-10-23T21:30:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 0 received, 100% packet loss, time 3947ms
|
||||
2026-10-23T21:30:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 323.667/323.847/324.293/0.145 ms, pipe 2
|
||||
2026-10-23T21:30:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 347.419/347.486/347.671/0.055 ms, pipe 2
|
||||
2026-10-23T21:30:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 173.365/173.404/173.466/0.028 ms
|
||||
2026-10-23T21:30:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 303.536/310.066/312.972/4.259 ms, pipe 2
|
||||
2026-10-23T21:40:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 216.236/216.572/218.310/0.459 ms, pipe 2
|
||||
2026-10-23T21:40:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 316.462/316.635/317.269/0.212 ms, pipe 2
|
||||
2026-10-23T21:40:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 319.630/319.785/320.101/0.134 ms, pipe 2
|
||||
2026-10-23T21:40:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 345.243/345.325/345.409/0.047 ms, pipe 2
|
||||
2026-10-23T21:40:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 46.112/46.201/46.394/0.054 ms
|
||||
2026-10-23T21:40:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3946ms rtt min/avg/max/mdev = 0.044/0.052/0.061/0.005 ms
|
||||
2026-10-23T21:40:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3803ms rtt min/avg/max/mdev = 166.020/166.126/166.600/0.144 ms
|
||||
2026-10-23T21:40:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 305.917/305.987/306.043/0.037 ms, pipe 2
|
||||
2026-10-23T21:40:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 329.455/329.560/329.778/0.094 ms, pipe 2
|
||||
2026-10-23T21:40:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 344.595/344.693/344.947/0.082 ms, pipe 2
|
||||
2026-10-23T21:40:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 377.901/378.024/378.838/0.189 ms, pipe 2
|
||||
2026-10-23T21:40:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 350.112/350.195/350.368/0.062 ms, pipe 2
|
||||
2026-10-23T21:40:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 316.579/316.701/316.988/0.098 ms, pipe 2
|
||||
2026-10-23T21:40:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 377.673/377.795/377.895/0.060 ms, pipe 2
|
||||
2026-10-23T21:40:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3805ms rtt min/avg/max/mdev = 131.880/132.204/133.169/0.286 ms
|
||||
2026-10-23T21:40:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 130.640/130.711/130.799/0.030 ms
|
||||
2026-10-23T21:40:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 1.236/1.338/1.701/0.118 ms
|
||||
2026-10-23T21:40:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 46.631/46.783/47.030/0.105 ms
|
||||
2026-10-23T21:40:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 0 received, 100% packet loss, time 3944ms
|
||||
2026-10-23T21:40:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 0 received, 100% packet loss, time 3945ms
|
||||
2026-10-23T21:40:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 323.623/323.788/324.259/0.146 ms, pipe 2
|
||||
2026-10-23T21:40:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 347.389/347.461/347.786/0.081 ms, pipe 2
|
||||
2026-10-23T21:40:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 173.339/173.391/173.468/0.032 ms
|
||||
2026-10-23T21:40:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 303.489/304.625/305.965/1.176 ms, pipe 2
|
||||
2026-10-23T21:50:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 216.251/216.356/216.743/0.108 ms, pipe 2
|
||||
2026-10-23T21:50:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 318.953/319.346/320.694/0.668 ms, pipe 2
|
||||
2026-10-23T21:50:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 325.636/325.711/325.821/0.050 ms, pipe 2
|
||||
2026-10-23T21:50:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 341.304/341.442/341.994/0.136 ms, pipe 2
|
||||
2026-10-23T21:50:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 46.121/46.227/46.557/0.094 ms
|
||||
2026-10-23T21:50:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3952ms rtt min/avg/max/mdev = 0.036/0.056/0.090/0.012 ms
|
||||
2026-10-23T21:50:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3802ms rtt min/avg/max/mdev = 165.980/166.065/166.286/0.068 ms
|
||||
2026-10-23T21:50:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 308.427/308.488/308.584/0.049 ms, pipe 2
|
||||
2026-10-23T21:50:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 329.459/329.589/330.312/0.179 ms, pipe 2
|
||||
2026-10-23T21:50:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 344.638/344.736/344.885/0.071 ms, pipe 2
|
||||
2026-10-23T21:50:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 377.966/378.092/378.857/0.182 ms, pipe 2
|
||||
2026-10-23T21:50:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 351.807/351.996/352.848/0.211 ms, pipe 2
|
||||
2026-10-23T21:50:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 318.362/318.449/318.567/0.057 ms, pipe 2
|
||||
2026-10-23T21:50:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 377.646/377.763/377.857/0.047 ms, pipe 2
|
||||
2026-10-23T21:50:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 131.893/132.264/133.849/0.435 ms
|
||||
2026-10-23T21:50:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 130.716/130.889/132.114/0.328 ms
|
||||
2026-10-23T21:50:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 1.229/1.350/1.577/0.081 ms
|
||||
2026-10-23T21:50:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 46.664/46.768/46.968/0.092 ms
|
||||
2026-10-23T21:50:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 0 received, 100% packet loss, time 3948ms
|
||||
2026-10-23T21:50:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 0 received, 100% packet loss, time 3947ms
|
||||
2026-10-23T21:50:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 319.801/319.918/320.110/0.074 ms, pipe 2
|
||||
2026-10-23T21:50:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3806ms rtt min/avg/max/mdev = 347.700/347.750/347.848/0.034 ms, pipe 2
|
||||
2026-10-23T21:50:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 173.330/173.377/173.420/0.021 ms
|
||||
2026-10-23T21:50:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 300.830/301.893/305.976/2.033 ms, pipe 2
|
||||
2026-10-23T22:00:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 216.319/216.694/218.669/0.586 ms, pipe 2
|
||||
2026-10-23T22:00:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 312.989/313.044/313.114/0.034 ms, pipe 2
|
||||
2026-10-23T22:00:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 323.898/324.062/324.648/0.157 ms, pipe 2
|
||||
2026-10-23T22:00:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 343.087/343.227/343.639/0.140 ms, pipe 2
|
||||
2026-10-23T22:00:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 46.171/46.263/46.384/0.052 ms
|
||||
2026-10-23T22:00:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3945ms rtt min/avg/max/mdev = 0.035/0.061/0.131/0.023 ms
|
||||
2026-10-23T22:00:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3804ms rtt min/avg/max/mdev = 166.002/166.063/166.122/0.028 ms
|
||||
2026-10-23T22:00:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 310.206/310.295/310.379/0.050 ms, pipe 2
|
||||
2026-10-23T22:00:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 329.448/329.615/329.816/0.123 ms, pipe 2
|
||||
2026-10-23T22:00:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 346.328/346.413/346.750/0.113 ms, pipe 2
|
||||
2026-10-23T22:00:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 377.913/377.975/378.071/0.036 ms, pipe 2
|
||||
2026-10-23T22:00:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 350.036/350.182/350.481/0.090 ms, pipe 2
|
||||
2026-10-23T22:00:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 318.294/318.539/320.324/0.483 ms, pipe 2
|
||||
2026-10-23T22:00:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 377.665/377.769/377.880/0.048 ms, pipe 2
|
||||
2026-10-23T22:00:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3806ms rtt min/avg/max/mdev = 131.894/132.210/133.390/0.309 ms
|
||||
2026-10-23T22:00:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 130.650/130.715/130.801/0.039 ms
|
||||
2026-10-23T22:00:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 1.190/1.301/1.419/0.058 ms
|
||||
2026-10-23T22:00:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 46.657/46.798/47.130/0.105 ms
|
||||
2026-10-23T22:00:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 0 received, 100% packet loss, time 3949ms
|
||||
2026-10-23T22:00:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 0 received, 100% packet loss, time 3946ms
|
||||
2026-10-23T22:00:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 323.714/323.835/324.383/0.151 ms, pipe 2
|
||||
2026-10-23T22:00:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 347.703/347.759/347.903/0.045 ms, pipe 2
|
||||
2026-10-23T22:00:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 173.369/173.403/173.472/0.026 ms
|
||||
2026-10-23T22:00:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 305.951/308.338/311.838/2.583 ms, pipe 2
|
||||
2026-10-23T22:10:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 216.228/216.454/217.422/0.282 ms, pipe 2
|
||||
2026-10-23T22:10:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 314.727/314.777/314.898/0.038 ms, pipe 2
|
||||
2026-10-23T22:10:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 327.371/327.451/328.164/0.167 ms, pipe 2
|
||||
2026-10-23T22:10:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 341.307/341.381/341.522/0.042 ms, pipe 2
|
||||
2026-10-23T22:10:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 46.071/46.252/47.153/0.234 ms
|
||||
2026-10-23T22:10:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3952ms rtt min/avg/max/mdev = 0.024/0.048/0.079/0.013 ms
|
||||
2026-10-23T22:10:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3802ms rtt min/avg/max/mdev = 166.006/166.079/166.176/0.048 ms
|
||||
2026-10-23T22:10:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 307.382/307.466/307.606/0.058 ms, pipe 2
|
||||
2026-10-23T22:10:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 329.434/329.591/329.825/0.106 ms, pipe 2
|
||||
2026-10-23T22:10:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 344.602/344.689/344.922/0.077 ms, pipe 2
|
||||
2026-10-23T22:10:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 377.931/378.034/378.221/0.060 ms, pipe 2
|
||||
2026-10-23T22:10:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 351.755/351.884/351.961/0.057 ms, pipe 2
|
||||
2026-10-23T22:10:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 318.285/318.347/318.422/0.037 ms, pipe 2
|
||||
2026-10-23T22:10:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 377.626/377.744/377.950/0.074 ms, pipe 2
|
||||
2026-10-23T22:10:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 131.847/134.003/168.161/7.840 ms
|
||||
2026-10-23T22:10:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 130.627/130.684/130.767/0.036 ms
|
||||
2026-10-23T22:10:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 1.165/1.242/1.317/0.036 ms
|
||||
2026-10-23T22:10:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 46.598/46.799/46.950/0.080 ms
|
||||
2026-10-23T22:10:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 0 received, 100% packet loss, time 3948ms
|
||||
2026-10-23T22:10:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 0 received, 100% packet loss, time 3947ms
|
||||
2026-10-23T22:10:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 323.638/323.852/324.669/0.219 ms, pipe 2
|
||||
2026-10-23T22:10:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 347.692/347.747/347.836/0.034 ms, pipe 2
|
||||
2026-10-23T22:10:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 173.316/173.375/173.419/0.024 ms
|
||||
2026-10-23T22:10:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 301.655/303.931/305.160/1.611 ms, pipe 2
|
||||
2026-10-23T22:20:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 216.232/216.333/216.432/0.051 ms, pipe 2
|
||||
2026-10-23T22:20:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 318.872/318.961/319.089/0.055 ms, pipe 2
|
||||
2026-10-23T22:20:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 325.628/325.700/325.836/0.046 ms, pipe 2
|
||||
2026-10-23T22:20:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 341.333/341.407/341.832/0.103 ms, pipe 2
|
||||
2026-10-23T22:20:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 46.112/46.173/46.256/0.042 ms
|
||||
2026-10-23T22:20:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3945ms rtt min/avg/max/mdev = 0.038/0.047/0.059/0.006 ms
|
||||
2026-10-23T22:20:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3801ms rtt min/avg/max/mdev = 171.989/172.083/172.154/0.044 ms
|
||||
2026-10-23T22:20:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 306.672/306.758/306.838/0.043 ms, pipe 2
|
||||
2026-10-23T22:20:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 329.439/329.643/329.831/0.106 ms, pipe 2
|
||||
2026-10-23T22:20:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 346.333/346.399/346.592/0.069 ms, pipe 2
|
||||
2026-10-23T22:20:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 377.931/377.973/378.040/0.025 ms, pipe 2
|
||||
2026-10-23T22:20:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 351.725/351.869/351.988/0.063 ms, pipe 2
|
||||
2026-10-23T22:20:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 318.408/318.584/318.980/0.152 ms, pipe 2
|
||||
2026-10-23T22:20:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3805ms rtt min/avg/max/mdev = 377.681/377.779/377.892/0.056 ms, pipe 2
|
||||
2026-10-23T22:20:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3805ms rtt min/avg/max/mdev = 131.838/132.516/135.058/0.717 ms
|
||||
2026-10-23T22:20:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 130.635/130.706/130.837/0.054 ms
|
||||
2026-10-23T22:20:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 1.178/1.300/1.384/0.049 ms
|
||||
2026-10-23T22:20:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 46.665/46.820/47.024/0.100 ms
|
||||
2026-10-23T22:20:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 0 received, 100% packet loss, time 3945ms
|
||||
2026-10-23T22:20:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 0 received, 100% packet loss, time 3947ms
|
||||
2026-10-23T22:20:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 19 received, 5% packet loss, time 3816ms rtt min/avg/max/mdev = 345.864/352.094/355.653/2.482 ms, pipe 2
|
||||
2026-10-23T22:20:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3805ms rtt min/avg/max/mdev = 347.708/347.748/347.798/0.023 ms, pipe 2
|
||||
2026-10-23T22:20:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 173.342/173.388/173.430/0.023 ms
|
||||
2026-10-23T22:20:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 301.802/305.292/309.522/3.799 ms, pipe 2
|
||||
2026-10-23T22:30:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 216.253/216.434/217.355/0.229 ms, pipe 2
|
||||
2026-10-23T22:30:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 314.705/314.797/314.937/0.047 ms, pipe 2
|
||||
2026-10-23T22:30:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 325.648/325.722/325.817/0.045 ms, pipe 2
|
||||
2026-10-23T22:30:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 343.075/343.152/343.360/0.063 ms, pipe 2
|
||||
2026-10-23T22:30:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 46.115/46.681/53.131/1.574 ms
|
||||
2026-10-23T22:30:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3952ms rtt min/avg/max/mdev = 0.028/0.051/0.063/0.009 ms
|
||||
2026-10-23T22:30:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 173.719/173.764/173.796/0.018 ms
|
||||
2026-10-23T22:30:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 313.415/313.507/313.691/0.061 ms, pipe 2
|
||||
2026-10-23T22:30:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 329.449/329.570/329.726/0.085 ms, pipe 2
|
||||
2026-10-23T22:30:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 344.606/344.697/344.855/0.063 ms, pipe 2
|
||||
2026-10-23T22:30:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 377.981/378.030/378.120/0.036 ms, pipe 2
|
||||
2026-10-23T22:30:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 351.847/351.923/352.059/0.050 ms, pipe 2
|
||||
2026-10-23T22:30:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 318.324/318.450/319.126/0.161 ms, pipe 2
|
||||
2026-10-23T22:30:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 377.655/377.901/380.377/0.573 ms, pipe 2
|
||||
2026-10-23T22:30:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 131.757/132.193/132.780/0.285 ms
|
||||
2026-10-23T22:30:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 130.658/130.813/131.770/0.232 ms
|
||||
2026-10-23T22:30:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 1.229/1.302/1.441/0.061 ms
|
||||
2026-10-23T22:30:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 46.674/46.830/47.165/0.105 ms
|
||||
2026-10-23T22:30:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 0 received, 100% packet loss, time 3952ms
|
||||
2026-10-23T22:30:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 0 received, 100% packet loss, time 3946ms
|
||||
2026-10-23T22:30:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 323.640/323.760/324.045/0.081 ms, pipe 2
|
||||
2026-10-23T22:30:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 347.679/347.751/347.813/0.029 ms, pipe 2
|
||||
2026-10-23T22:30:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 173.333/173.387/173.451/0.026 ms
|
||||
2026-10-23T22:30:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 301.777/302.845/306.890/2.011 ms, pipe 2
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,191 @@
|
||||
2026-10-23T21:20:43Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 347.057/347.137/347.259/0.055 ms, pipe 2
|
||||
2026-10-23T21:20:43Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 336.966/337.019/337.101/0.036 ms, pipe 2
|
||||
2026-10-23T21:20:43Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 357.299/357.586/359.525/0.486 ms, pipe 2
|
||||
2026-10-23T21:20:43Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3949ms rtt min/avg/max/mdev = 0.041/0.061/0.075/0.007 ms
|
||||
2026-10-23T21:20:43Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 46.101/46.219/46.351/0.056 ms
|
||||
2026-10-23T21:20:43Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 190.689/190.927/191.609/0.203 ms
|
||||
2026-10-23T21:20:43Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 315.926/316.005/316.116/0.050 ms, pipe 2
|
||||
2026-10-23T21:20:43Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 346.892/347.954/364.149/3.717 ms, pipe 2
|
||||
2026-10-23T21:20:43Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 357.419/357.543/357.700/0.071 ms, pipe 2
|
||||
2026-10-23T21:20:43Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 388.342/388.385/388.457/0.030 ms, pipe 2
|
||||
2026-10-23T21:20:43Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 353.964/354.176/354.477/0.143 ms, pipe 2
|
||||
2026-10-23T21:20:43Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 346.529/346.730/348.071/0.314 ms, pipe 2
|
||||
2026-10-23T21:20:43Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3830ms rtt min/avg/max/mdev = 424.571/425.082/427.464/0.935 ms, pipe 3
|
||||
2026-10-23T21:20:43Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 1.080/1.416/2.178/0.326 ms
|
||||
2026-10-23T21:20:43Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 20.203/20.253/20.331/0.043 ms
|
||||
2026-10-23T21:20:43Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 47.418/47.543/47.940/0.116 ms
|
||||
2026-10-23T21:20:43Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 155.369/155.479/155.713/0.081 ms
|
||||
2026-10-23T21:20:43Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 267.476/267.744/268.020/0.156 ms, pipe 2
|
||||
2026-10-23T21:20:43Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3805ms rtt min/avg/max/mdev = 321.656/321.722/321.848/0.055 ms, pipe 2
|
||||
2026-10-23T21:20:43Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 333.078/334.717/361.476/6.145 ms, pipe 2
|
||||
2026-10-23T21:20:43Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3850ms rtt min/avg/max/mdev = 394.626/394.742/394.929/0.078 ms, pipe 2
|
||||
2026-10-23T21:20:43Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 175.702/175.762/175.880/0.037 ms
|
||||
2026-10-23T21:20:43Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 325.485/325.541/325.621/0.037 ms, pipe 2
|
||||
2026-10-23T21:30:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3825ms rtt min/avg/max/mdev = 222.598/223.222/226.406/1.130 ms, pipe 2
|
||||
2026-10-23T21:30:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 347.045/347.112/347.271/0.054 ms, pipe 2
|
||||
2026-10-23T21:30:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 336.892/336.971/337.125/0.061 ms, pipe 2
|
||||
2026-10-23T21:30:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 357.283/357.454/357.656/0.101 ms, pipe 2
|
||||
2026-10-23T21:30:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3951ms rtt min/avg/max/mdev = 0.023/0.067/0.090/0.012 ms
|
||||
2026-10-23T21:30:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 46.115/46.221/46.838/0.152 ms
|
||||
2026-10-23T21:30:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 190.645/190.739/191.109/0.116 ms
|
||||
2026-10-23T21:30:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 315.865/315.964/316.213/0.092 ms, pipe 2
|
||||
2026-10-23T21:30:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 346.834/346.940/347.208/0.100 ms, pipe 2
|
||||
2026-10-23T21:30:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3806ms rtt min/avg/max/mdev = 357.478/357.576/357.682/0.066 ms, pipe 2
|
||||
2026-10-23T21:30:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 388.381/388.435/388.502/0.033 ms, pipe 2
|
||||
2026-10-23T21:30:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 354.008/354.096/354.230/0.052 ms, pipe 2
|
||||
2026-10-23T21:30:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 346.517/346.666/346.832/0.070 ms, pipe 2
|
||||
2026-10-23T21:30:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3828ms rtt min/avg/max/mdev = 424.558/424.680/424.796/0.070 ms, pipe 3
|
||||
2026-10-23T21:30:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 1.035/1.275/2.171/0.255 ms
|
||||
2026-10-23T21:30:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 20.226/20.289/20.436/0.049 ms
|
||||
2026-10-23T21:30:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 47.458/47.642/47.853/0.090 ms
|
||||
2026-10-23T21:30:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 155.351/155.492/155.688/0.083 ms
|
||||
2026-10-23T21:30:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 267.574/268.426/280.485/2.769 ms, pipe 2
|
||||
2026-10-23T21:30:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 319.725/320.575/334.135/3.112 ms, pipe 2
|
||||
2026-10-23T21:30:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 333.441/333.561/333.741/0.085 ms, pipe 2
|
||||
2026-10-23T21:30:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3865ms rtt min/avg/max/mdev = 396.477/396.546/396.710/0.052 ms, pipe 2
|
||||
2026-10-23T21:30:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 175.697/175.815/176.830/0.241 ms
|
||||
2026-10-23T21:30:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 325.476/325.558/325.707/0.055 ms, pipe 2
|
||||
2026-10-23T21:40:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 222.680/222.757/222.927/0.069 ms, pipe 2
|
||||
2026-10-23T21:40:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 347.805/347.895/348.016/0.060 ms, pipe 2
|
||||
2026-10-23T21:40:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 337.037/337.152/337.607/0.131 ms, pipe 2
|
||||
2026-10-23T21:40:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 357.055/357.168/357.239/0.050 ms, pipe 2
|
||||
2026-10-23T21:40:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3947ms rtt min/avg/max/mdev = 0.031/0.070/0.136/0.022 ms
|
||||
2026-10-23T21:40:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 46.103/46.199/46.987/0.183 ms
|
||||
2026-10-23T21:40:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3798ms rtt min/avg/max/mdev = 189.891/189.953/190.100/0.042 ms
|
||||
2026-10-23T21:40:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 315.881/316.030/316.905/0.277 ms, pipe 2
|
||||
2026-10-23T21:40:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 346.029/346.148/346.319/0.078 ms, pipe 2
|
||||
2026-10-23T21:40:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 357.269/357.397/357.719/0.101 ms, pipe 2
|
||||
2026-10-23T21:40:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 387.706/387.745/387.819/0.032 ms, pipe 2
|
||||
2026-10-23T21:40:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 354.076/354.419/358.441/0.926 ms, pipe 2
|
||||
2026-10-23T21:40:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 346.488/347.910/369.135/4.922 ms, pipe 2
|
||||
2026-10-23T21:40:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3825ms rtt min/avg/max/mdev = 424.612/424.694/424.831/0.057 ms, pipe 3
|
||||
2026-10-23T21:40:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 0.958/2.301/23.133/4.782 ms
|
||||
2026-10-23T21:40:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 20.142/20.243/20.430/0.060 ms
|
||||
2026-10-23T21:40:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 47.354/47.489/47.586/0.057 ms
|
||||
2026-10-23T21:40:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 155.339/155.486/155.733/0.106 ms
|
||||
2026-10-23T21:40:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 269.237/269.485/269.840/0.149 ms, pipe 2
|
||||
2026-10-23T21:40:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 322.310/322.428/322.557/0.063 ms, pipe 2
|
||||
2026-10-23T21:40:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 333.782/334.963/355.281/4.661 ms, pipe 2
|
||||
2026-10-23T21:40:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3846ms rtt min/avg/max/mdev = 394.278/394.367/394.456/0.039 ms, pipe 2
|
||||
2026-10-23T21:40:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 175.706/175.735/175.770/0.020 ms
|
||||
2026-10-23T21:40:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 325.451/325.502/325.615/0.037 ms, pipe 2
|
||||
2026-10-23T21:50:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 222.624/222.899/225.338/0.572 ms, pipe 2
|
||||
2026-10-23T21:50:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 347.793/347.888/348.021/0.054 ms, pipe 2
|
||||
2026-10-23T21:50:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 337.044/337.113/337.187/0.042 ms, pipe 2
|
||||
2026-10-23T21:50:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 356.897/357.221/360.995/0.866 ms, pipe 2
|
||||
2026-10-23T21:50:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3948ms rtt min/avg/max/mdev = 0.055/0.065/0.084/0.007 ms
|
||||
2026-10-23T21:50:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 46.124/46.240/46.916/0.162 ms
|
||||
2026-10-23T21:50:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 189.910/190.025/190.123/0.054 ms
|
||||
2026-10-23T21:50:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 315.914/316.004/316.206/0.063 ms, pipe 2
|
||||
2026-10-23T21:50:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 346.045/346.116/346.246/0.057 ms, pipe 2
|
||||
2026-10-23T21:50:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 357.317/357.425/357.586/0.077 ms, pipe 2
|
||||
2026-10-23T21:50:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 387.744/387.821/387.933/0.049 ms, pipe 2
|
||||
2026-10-23T21:50:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 354.148/354.250/354.343/0.060 ms, pipe 2
|
||||
2026-10-23T21:50:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 346.657/346.802/347.097/0.118 ms, pipe 2
|
||||
2026-10-23T21:50:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3825ms rtt min/avg/max/mdev = 424.639/424.749/424.805/0.039 ms, pipe 3
|
||||
2026-10-23T21:50:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 0.974/3.895/48.850/10.337 ms
|
||||
2026-10-23T21:50:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 20.218/20.332/20.399/0.044 ms
|
||||
2026-10-23T21:50:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 47.434/47.586/48.077/0.134 ms
|
||||
2026-10-23T21:50:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 155.399/155.549/155.774/0.086 ms
|
||||
2026-10-23T21:50:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 269.435/269.618/269.837/0.116 ms, pipe 2
|
||||
2026-10-23T21:50:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 322.420/322.521/322.788/0.095 ms, pipe 2
|
||||
2026-10-23T21:50:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 333.138/333.298/334.156/0.212 ms, pipe 2
|
||||
2026-10-23T21:50:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3847ms rtt min/avg/max/mdev = 394.631/394.679/394.773/0.035 ms, pipe 2
|
||||
2026-10-23T21:50:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 175.713/175.757/175.911/0.041 ms
|
||||
2026-10-23T21:50:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 325.488/325.530/325.624/0.030 ms, pipe 2
|
||||
2026-10-23T22:00:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 222.556/223.074/226.997/1.042 ms, pipe 2
|
||||
2026-10-23T22:00:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 347.751/347.908/348.508/0.163 ms, pipe 2
|
||||
2026-10-23T22:00:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 337.009/337.145/337.744/0.155 ms, pipe 2
|
||||
2026-10-23T22:00:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 356.856/357.111/358.074/0.300 ms, pipe 2
|
||||
2026-10-23T22:00:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3950ms rtt min/avg/max/mdev = 0.028/0.074/0.142/0.021 ms
|
||||
2026-10-23T22:00:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 46.163/46.238/46.408/0.051 ms
|
||||
2026-10-23T22:00:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 189.895/189.996/190.112/0.053 ms
|
||||
2026-10-23T22:00:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 315.814/315.918/316.105/0.067 ms, pipe 2
|
||||
2026-10-23T22:00:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 345.977/346.157/346.595/0.146 ms, pipe 2
|
||||
2026-10-23T22:00:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 357.225/357.342/357.678/0.090 ms, pipe 2
|
||||
2026-10-23T22:00:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 387.646/387.744/387.925/0.086 ms, pipe 2
|
||||
2026-10-23T22:00:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 354.189/354.253/354.339/0.044 ms, pipe 2
|
||||
2026-10-23T22:00:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 346.605/346.707/346.821/0.061 ms, pipe 2
|
||||
2026-10-23T22:00:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 424.688/424.768/424.932/0.057 ms, pipe 3
|
||||
2026-10-23T22:00:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 1.034/1.596/3.766/0.777 ms
|
||||
2026-10-23T22:00:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 20.187/20.271/20.438/0.064 ms
|
||||
2026-10-23T22:00:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 47.470/47.629/48.159/0.163 ms
|
||||
2026-10-23T22:00:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 155.412/155.538/155.840/0.089 ms
|
||||
2026-10-23T22:00:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 269.349/269.538/269.759/0.130 ms, pipe 2
|
||||
2026-10-23T22:00:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 322.373/322.474/322.580/0.053 ms, pipe 2
|
||||
2026-10-23T22:00:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 333.062/333.205/333.446/0.099 ms, pipe 2
|
||||
2026-10-23T22:00:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3865ms rtt min/avg/max/mdev = 396.462/396.548/396.714/0.050 ms, pipe 2
|
||||
2026-10-23T22:00:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 175.701/175.762/175.878/0.038 ms
|
||||
2026-10-23T22:00:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 325.494/325.536/325.610/0.031 ms, pipe 2
|
||||
2026-10-23T22:10:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 222.590/222.873/226.141/0.753 ms, pipe 2
|
||||
2026-10-23T22:10:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 347.108/347.187/347.514/0.094 ms, pipe 2
|
||||
2026-10-23T22:10:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 336.273/336.351/336.425/0.043 ms, pipe 2
|
||||
2026-10-23T22:10:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 356.870/356.969/357.079/0.057 ms, pipe 2
|
||||
2026-10-23T22:10:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3952ms rtt min/avg/max/mdev = 0.031/0.065/0.081/0.010 ms
|
||||
2026-10-23T22:10:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 46.079/46.199/46.702/0.127 ms
|
||||
2026-10-23T22:10:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 190.551/190.636/190.756/0.055 ms
|
||||
2026-10-23T22:10:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 316.541/316.646/316.801/0.053 ms, pipe 2
|
||||
2026-10-23T22:10:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 346.736/346.859/347.002/0.071 ms, pipe 2
|
||||
2026-10-23T22:10:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 357.903/358.021/358.300/0.095 ms, pipe 2
|
||||
2026-10-23T22:10:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 387.563/387.657/387.873/0.085 ms, pipe 2
|
||||
2026-10-23T22:10:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 354.087/354.225/354.433/0.086 ms, pipe 2
|
||||
2026-10-23T22:10:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 346.762/346.872/347.016/0.070 ms, pipe 2
|
||||
2026-10-23T22:10:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3825ms rtt min/avg/max/mdev = 424.545/426.601/460.292/7.754 ms, pipe 3
|
||||
2026-10-23T22:10:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 0.996/2.981/33.745/7.070 ms
|
||||
2026-10-23T22:10:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 20.214/20.278/20.553/0.070 ms
|
||||
2026-10-23T22:10:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 47.385/47.494/47.753/0.080 ms
|
||||
2026-10-23T22:10:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 155.310/155.446/155.657/0.083 ms
|
||||
2026-10-23T22:10:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 267.397/267.595/267.764/0.094 ms, pipe 2
|
||||
2026-10-23T22:10:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 322.304/322.382/322.484/0.050 ms, pipe 2
|
||||
2026-10-23T22:10:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 333.019/333.213/334.447/0.307 ms, pipe 2
|
||||
2026-10-23T22:10:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3849ms rtt min/avg/max/mdev = 394.391/394.456/394.626/0.049 ms, pipe 2
|
||||
2026-10-23T22:10:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 175.654/175.730/175.985/0.069 ms
|
||||
2026-10-23T22:10:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 325.395/325.712/326.550/0.379 ms, pipe 2
|
||||
2026-10-23T22:20:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 222.572/222.713/223.081/0.125 ms, pipe 2
|
||||
2026-10-23T22:20:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 347.045/347.116/347.215/0.041 ms, pipe 2
|
||||
2026-10-23T22:20:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 336.279/336.404/336.499/0.056 ms, pipe 2
|
||||
2026-10-23T22:20:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 356.929/358.081/378.489/4.682 ms, pipe 2
|
||||
2026-10-23T22:20:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3947ms rtt min/avg/max/mdev = 0.042/0.062/0.077/0.008 ms
|
||||
2026-10-23T22:20:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 46.129/46.205/46.567/0.100 ms
|
||||
2026-10-23T22:20:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 190.494/190.663/191.703/0.245 ms
|
||||
2026-10-23T22:20:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 316.581/316.663/316.738/0.032 ms, pipe 2
|
||||
2026-10-23T22:20:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 346.838/347.016/347.246/0.113 ms, pipe 2
|
||||
2026-10-23T22:20:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 358.019/358.128/358.386/0.104 ms, pipe 2
|
||||
2026-10-23T22:20:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 387.747/387.803/387.901/0.044 ms, pipe 2
|
||||
2026-10-23T22:20:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 354.101/354.264/354.500/0.080 ms, pipe 2
|
||||
2026-10-23T22:20:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 346.970/347.366/347.768/0.246 ms, pipe 2
|
||||
2026-10-23T22:20:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3828ms rtt min/avg/max/mdev = 424.554/424.684/424.806/0.060 ms, pipe 3
|
||||
2026-10-23T22:20:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 1.104/1.540/2.801/0.432 ms
|
||||
2026-10-23T22:20:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 20.202/20.296/20.425/0.056 ms
|
||||
2026-10-23T22:20:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 47.447/47.605/47.921/0.114 ms
|
||||
2026-10-23T22:20:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 155.350/155.449/155.641/0.079 ms
|
||||
2026-10-23T22:20:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 269.235/269.577/269.864/0.152 ms, pipe 2
|
||||
2026-10-23T22:20:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 322.344/322.452/322.587/0.058 ms, pipe 2
|
||||
2026-10-23T22:20:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 333.482/333.615/334.113/0.137 ms, pipe 2
|
||||
2026-10-23T22:20:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 19 received, 5% packet loss, time 3854ms rtt min/avg/max/mdev = 394.464/394.545/394.628/0.037 ms, pipe 2
|
||||
2026-10-23T22:20:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 175.697/175.753/175.976/0.063 ms
|
||||
2026-10-23T22:20:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 325.429/325.502/325.555/0.035 ms, pipe 2
|
||||
2026-10-23T22:30:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 222.574/223.317/228.507/1.596 ms, pipe 2
|
||||
2026-10-23T22:30:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 347.097/347.173/347.305/0.044 ms, pipe 2
|
||||
2026-10-23T22:30:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 336.338/336.425/336.574/0.054 ms, pipe 2
|
||||
2026-10-23T22:30:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 356.930/357.010/357.184/0.055 ms, pipe 2
|
||||
2026-10-23T22:30:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3942ms rtt min/avg/max/mdev = 0.048/0.062/0.085/0.009 ms
|
||||
2026-10-23T22:30:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 46.158/46.326/46.979/0.212 ms
|
||||
2026-10-23T22:30:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3796ms rtt min/avg/max/mdev = 190.507/190.618/191.063/0.121 ms
|
||||
2026-10-23T22:30:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 316.550/316.762/318.259/0.346 ms, pipe 2
|
||||
2026-10-23T22:30:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 346.815/346.993/347.174/0.087 ms, pipe 2
|
||||
2026-10-23T22:30:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 358.057/358.123/358.255/0.056 ms, pipe 2
|
||||
2026-10-23T22:30:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 387.766/387.891/389.105/0.280 ms, pipe 2
|
||||
2026-10-23T22:30:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 354.234/354.308/354.410/0.052 ms, pipe 2
|
||||
2026-10-23T22:30:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 352.208/352.347/352.480/0.069 ms, pipe 2
|
||||
2026-10-23T22:30:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3825ms rtt min/avg/max/mdev = 424.616/424.712/424.814/0.053 ms, pipe 3
|
||||
2026-10-23T22:30:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 1.086/1.474/2.795/0.451 ms
|
||||
2026-10-23T22:30:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 20.176/20.245/20.371/0.047 ms
|
||||
2026-10-23T22:30:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 47.444/47.531/47.637/0.050 ms
|
||||
2026-10-23T22:30:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 155.357/155.519/155.879/0.108 ms
|
||||
2026-10-23T22:30:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 269.370/269.577/269.867/0.118 ms, pipe 2
|
||||
2026-10-23T22:30:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 322.332/322.428/322.530/0.050 ms, pipe 2
|
||||
2026-10-23T22:30:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 333.493/333.610/333.832/0.092 ms, pipe 2
|
||||
2026-10-23T22:30:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3852ms rtt min/avg/max/mdev = 394.503/394.554/394.619/0.036 ms, pipe 2
|
||||
2026-10-23T22:30:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 175.705/175.757/175.827/0.031 ms
|
||||
2026-10-23T22:30:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 325.408/325.518/325.623/0.051 ms, pipe 2
|
||||
@@ -0,0 +1,103 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"code": "syd",
|
||||
"city": "Sydney",
|
||||
"lat": -33.87,
|
||||
"lon": 151.21,
|
||||
"id": "7346f860-827d-4e6b-9d3a-9a6d7a9ca7c6",
|
||||
"plan": "vc2-1c-1gb",
|
||||
"ip": "207.148.81.200",
|
||||
"started": "2026-10-23T21:20:00Z"
|
||||
},
|
||||
{
|
||||
"code": "mel",
|
||||
"city": "Melbourne",
|
||||
"lat": -37.81,
|
||||
"lon": 144.96,
|
||||
"id": "5abd952b-c5ee-44b2-9daf-b8017711b0bc",
|
||||
"plan": "vc2-1c-1gb",
|
||||
"ip": "67.219.106.57",
|
||||
"started": "2026-10-23T21:20:13Z"
|
||||
},
|
||||
{
|
||||
"code": "jnb",
|
||||
"city": "Johannesburg",
|
||||
"lat": -26.2,
|
||||
"lon": 28.05,
|
||||
"id": "cd36193c-756a-4b21-83dc-1a42ad20982f",
|
||||
"plan": "vc2-1c-1gb",
|
||||
"ip": "139.84.229.29",
|
||||
"started": "2026-10-23T21:20:33Z"
|
||||
},
|
||||
{
|
||||
"code": "scl",
|
||||
"city": "Santiago",
|
||||
"lat": -33.45,
|
||||
"lon": -70.67,
|
||||
"id": "98269679-cd61-4bec-ba04-e32f467b5d17",
|
||||
"plan": "vc2-1c-1gb",
|
||||
"ip": "64.176.28.246",
|
||||
"started": "2026-10-23T21:20:44Z"
|
||||
},
|
||||
{
|
||||
"code": "sao",
|
||||
"city": "S\u00e3o Paulo",
|
||||
"lat": -23.55,
|
||||
"lon": -46.63,
|
||||
"id": "406d5ed1-b93b-42a4-83af-54ca22677b41",
|
||||
"plan": "vc2-1c-1gb",
|
||||
"ip": "216.128.173.160",
|
||||
"started": "2026-10-23T21:20:54Z"
|
||||
},
|
||||
{
|
||||
"code": "lax",
|
||||
"city": "Los Angeles",
|
||||
"lat": 34.05,
|
||||
"lon": -118.24,
|
||||
"id": "eae96923-9947-4695-b2a1-32ba7db83771",
|
||||
"plan": "vc2-1c-1gb",
|
||||
"ip": "149.28.82.222",
|
||||
"started": "2026-10-23T21:21:01Z"
|
||||
},
|
||||
{
|
||||
"code": "icn",
|
||||
"city": "Seoul",
|
||||
"lat": 37.57,
|
||||
"lon": 126.98,
|
||||
"id": "b54faa12-1c68-462d-96a2-f031066bac2d",
|
||||
"plan": "vc2-1c-1gb",
|
||||
"ip": "141.164.52.85",
|
||||
"started": "2026-10-23T21:21:15Z"
|
||||
},
|
||||
{
|
||||
"code": "hnl",
|
||||
"city": "Honolulu",
|
||||
"lat": 21.31,
|
||||
"lon": -157.86,
|
||||
"id": "e486b758-6876-40a5-9c4b-9f587d6a16db",
|
||||
"plan": "vhp-1c-1gb-intel",
|
||||
"ip": "208.83.236.158",
|
||||
"started": "2026-10-23T21:23:05Z"
|
||||
}
|
||||
],
|
||||
"targets": [
|
||||
"au-syd-as4826",
|
||||
"au-mel-as4826",
|
||||
"au-ept-as4826",
|
||||
"au-bne-as4826",
|
||||
"nz-akl-as38064",
|
||||
"nc-nou-as45345",
|
||||
"cl-scl-as64112",
|
||||
"ar-bue-as4270",
|
||||
"br-sao-as22548",
|
||||
"br-for-as37468",
|
||||
"ao-lad-as37468",
|
||||
"za-jnb-as37468",
|
||||
"za-cpt-as37199",
|
||||
"id-jkt-as4622",
|
||||
"us-lax-as6939",
|
||||
"kr-sel-as3491"
|
||||
],
|
||||
"hours": 24
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,191 @@
|
||||
2026-10-23T21:19:59Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3951ms rtt min/avg/max/mdev = 0.041/0.056/0.070/0.006 ms
|
||||
2026-10-23T21:19:59Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 11.264/11.329/11.409/0.031 ms
|
||||
2026-10-23T21:19:59Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 384.299/384.381/384.510/0.056 ms, pipe 2
|
||||
2026-10-23T21:19:59Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 346.997/347.108/347.373/0.081 ms, pipe 2
|
||||
2026-10-23T21:19:59Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 313.001/313.035/313.084/0.025 ms, pipe 2
|
||||
2026-10-23T21:19:59Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 138.422/138.484/138.532/0.026 ms
|
||||
2026-10-23T21:19:59Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3802ms rtt min/avg/max/mdev = 143.021/143.099/143.322/0.061 ms
|
||||
2026-10-23T21:19:59Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3937ms rtt min/avg/max/mdev = 0.641/0.759/0.993/0.093 ms
|
||||
2026-10-23T21:19:59Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 11.906/12.011/12.128/0.057 ms
|
||||
2026-10-23T21:19:59Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 46.513/46.582/46.655/0.035 ms
|
||||
2026-10-23T21:19:59Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 17.305/17.467/17.581/0.062 ms
|
||||
2026-10-23T21:19:59Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 24.035/24.137/24.460/0.091 ms
|
||||
2026-10-23T21:19:59Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 44.344/44.794/47.417/0.820 ms
|
||||
2026-10-23T21:19:59Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 301.446/301.718/302.130/0.151 ms, pipe 2
|
||||
2026-10-23T21:19:59Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 336.669/336.751/336.855/0.041 ms, pipe 2
|
||||
2026-10-23T21:19:59Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 313.405/313.532/313.967/0.119 ms, pipe 2
|
||||
2026-10-23T21:19:59Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 350.001/350.146/350.273/0.079 ms, pipe 2
|
||||
2026-10-23T21:19:59Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 388.602/388.785/389.028/0.106 ms, pipe 2
|
||||
2026-10-23T21:19:59Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3824ms rtt min/avg/max/mdev = 435.515/435.630/435.924/0.087 ms, pipe 3
|
||||
2026-10-23T21:19:59Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3824ms rtt min/avg/max/mdev = 413.275/417.723/500.595/19.012 ms, pipe 3
|
||||
2026-10-23T21:19:59Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 19 received, 5% packet loss, time 3827ms rtt min/avg/max/mdev = 323.958/342.614/653.567/73.311 ms, pipe 4
|
||||
2026-10-23T21:19:59Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 142.232/142.303/142.371/0.030 ms
|
||||
2026-10-23T21:19:59Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 135.784/135.818/135.882/0.026 ms
|
||||
2026-10-23T21:30:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 187.274/187.433/187.891/0.134 ms
|
||||
2026-10-23T21:30:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3945ms rtt min/avg/max/mdev = 0.026/0.051/0.082/0.014 ms
|
||||
2026-10-23T21:30:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 11.244/11.295/11.338/0.029 ms
|
||||
2026-10-23T21:30:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 384.283/384.378/384.667/0.078 ms, pipe 2
|
||||
2026-10-23T21:30:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 347.011/347.103/347.392/0.099 ms, pipe 2
|
||||
2026-10-23T21:30:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 314.709/314.772/314.898/0.042 ms, pipe 2
|
||||
2026-10-23T21:30:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 138.400/138.507/138.759/0.070 ms
|
||||
2026-10-23T21:30:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 148.265/148.408/149.266/0.247 ms
|
||||
2026-10-23T21:30:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3931ms rtt min/avg/max/mdev = 0.628/0.774/1.498/0.197 ms
|
||||
2026-10-23T21:30:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 11.967/12.087/12.670/0.150 ms
|
||||
2026-10-23T21:30:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 46.496/46.586/46.642/0.039 ms
|
||||
2026-10-23T21:30:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 17.409/17.500/17.633/0.053 ms
|
||||
2026-10-23T21:30:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 23.889/23.998/24.153/0.067 ms
|
||||
2026-10-23T21:30:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 44.282/44.425/44.531/0.068 ms
|
||||
2026-10-23T21:30:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 19 received, 5% packet loss, time 3814ms rtt min/avg/max/mdev = 301.459/301.800/302.461/0.271 ms, pipe 2
|
||||
2026-10-23T21:30:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 336.617/336.698/336.775/0.036 ms, pipe 2
|
||||
2026-10-23T21:30:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 316.892/316.994/317.212/0.080 ms, pipe 2
|
||||
2026-10-23T21:30:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 349.994/350.178/351.978/0.415 ms, pipe 2
|
||||
2026-10-23T21:30:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 388.589/388.860/389.919/0.285 ms, pipe 2
|
||||
2026-10-23T21:30:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3826ms rtt min/avg/max/mdev = 435.479/435.565/435.714/0.054 ms, pipe 3
|
||||
2026-10-23T21:30:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 412.636/412.793/413.302/0.149 ms, pipe 3
|
||||
2026-10-23T21:30:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 312.763/312.845/313.078/0.079 ms, pipe 2
|
||||
2026-10-23T21:30:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 142.263/142.300/142.337/0.020 ms
|
||||
2026-10-23T21:30:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 135.752/135.802/135.838/0.025 ms
|
||||
2026-10-23T21:40:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 187.434/187.521/187.956/0.110 ms
|
||||
2026-10-23T21:40:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3947ms rtt min/avg/max/mdev = 0.034/0.065/0.096/0.016 ms
|
||||
2026-10-23T21:40:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 11.171/11.259/11.345/0.055 ms
|
||||
2026-10-23T21:40:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 384.279/384.379/384.490/0.050 ms, pipe 2
|
||||
2026-10-23T21:40:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 347.810/347.871/348.009/0.047 ms, pipe 2
|
||||
2026-10-23T21:40:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 316.423/316.504/316.666/0.060 ms, pipe 2
|
||||
2026-10-23T21:40:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 138.403/138.461/138.540/0.043 ms
|
||||
2026-10-23T21:40:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 145.684/145.744/145.877/0.048 ms
|
||||
2026-10-23T21:40:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3951ms rtt min/avg/max/mdev = 0.610/0.697/0.861/0.079 ms
|
||||
2026-10-23T21:40:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 11.911/12.006/12.146/0.058 ms
|
||||
2026-10-23T21:40:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 46.512/46.561/46.630/0.030 ms
|
||||
2026-10-23T21:40:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 17.281/17.402/17.506/0.060 ms
|
||||
2026-10-23T21:40:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 23.871/23.944/24.041/0.046 ms
|
||||
2026-10-23T21:40:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 44.302/44.440/44.700/0.077 ms
|
||||
2026-10-23T21:40:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 301.394/303.613/338.108/7.925 ms, pipe 2
|
||||
2026-10-23T21:40:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 336.622/336.701/336.790/0.042 ms, pipe 2
|
||||
2026-10-23T21:40:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 315.114/315.161/315.284/0.042 ms, pipe 2
|
||||
2026-10-23T21:40:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 350.028/350.141/350.263/0.067 ms, pipe 2
|
||||
2026-10-23T21:40:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 388.599/388.747/388.922/0.089 ms, pipe 2
|
||||
2026-10-23T21:40:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3826ms rtt min/avg/max/mdev = 435.476/435.558/435.654/0.047 ms, pipe 3
|
||||
2026-10-23T21:40:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3826ms rtt min/avg/max/mdev = 412.635/413.613/426.418/2.970 ms, pipe 3
|
||||
2026-10-23T21:40:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 19 received, 5% packet loss, time 3818ms rtt min/avg/max/mdev = 313.903/318.303/319.790/2.321 ms, pipe 2
|
||||
2026-10-23T21:40:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 142.250/142.316/142.369/0.025 ms
|
||||
2026-10-23T21:40:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 135.731/135.758/135.848/0.024 ms
|
||||
2026-10-23T21:50:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 187.355/187.437/187.561/0.052 ms
|
||||
2026-10-23T21:50:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3951ms rtt min/avg/max/mdev = 0.022/0.043/0.067/0.012 ms
|
||||
2026-10-23T21:50:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 11.233/11.317/11.410/0.047 ms
|
||||
2026-10-23T21:50:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 384.280/384.349/384.428/0.044 ms, pipe 2
|
||||
2026-10-23T21:50:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 347.814/347.884/348.003/0.049 ms, pipe 2
|
||||
2026-10-23T21:50:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 318.929/318.980/319.079/0.035 ms, pipe 2
|
||||
2026-10-23T21:50:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 138.434/138.485/138.591/0.039 ms
|
||||
2026-10-23T21:50:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 145.679/145.747/145.874/0.043 ms
|
||||
2026-10-23T21:50:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3941ms rtt min/avg/max/mdev = 0.640/0.760/0.970/0.102 ms
|
||||
2026-10-23T21:50:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 11.931/12.032/12.211/0.075 ms
|
||||
2026-10-23T21:50:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 46.566/46.636/46.745/0.042 ms
|
||||
2026-10-23T21:50:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 17.409/17.506/17.661/0.058 ms
|
||||
2026-10-23T21:50:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 24.000/24.131/24.357/0.099 ms
|
||||
2026-10-23T21:50:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 44.372/44.518/45.031/0.129 ms
|
||||
2026-10-23T21:50:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 301.465/302.071/303.868/0.612 ms, pipe 2
|
||||
2026-10-23T21:50:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 336.687/336.748/336.821/0.037 ms, pipe 2
|
||||
2026-10-23T21:50:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 316.826/316.942/317.099/0.061 ms, pipe 2
|
||||
2026-10-23T21:50:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 349.960/350.166/350.340/0.102 ms, pipe 2
|
||||
2026-10-23T21:50:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 388.631/388.770/388.974/0.097 ms, pipe 2
|
||||
2026-10-23T21:50:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3826ms rtt min/avg/max/mdev = 435.471/435.577/435.666/0.049 ms, pipe 3
|
||||
2026-10-23T21:50:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 412.676/418.933/534.097/26.421 ms, pipe 3
|
||||
2026-10-23T21:50:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 313.603/313.654/313.707/0.029 ms, pipe 2
|
||||
2026-10-23T21:50:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3806ms rtt min/avg/max/mdev = 142.264/142.320/142.535/0.054 ms
|
||||
2026-10-23T21:50:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 135.684/135.719/135.768/0.018 ms
|
||||
2026-10-23T22:00:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 187.315/187.453/187.625/0.071 ms
|
||||
2026-10-23T22:00:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3948ms rtt min/avg/max/mdev = 0.038/0.052/0.072/0.009 ms
|
||||
2026-10-23T22:00:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 11.130/11.293/11.657/0.104 ms
|
||||
2026-10-23T22:00:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3806ms rtt min/avg/max/mdev = 384.316/384.369/384.462/0.035 ms, pipe 2
|
||||
2026-10-23T22:00:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 347.808/347.872/347.938/0.036 ms, pipe 2
|
||||
2026-10-23T22:00:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 313.026/313.067/313.128/0.027 ms, pipe 2
|
||||
2026-10-23T22:00:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 138.349/138.431/138.533/0.044 ms
|
||||
2026-10-23T22:00:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 148.318/148.370/148.467/0.040 ms
|
||||
2026-10-23T22:00:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3941ms rtt min/avg/max/mdev = 0.632/0.705/0.961/0.075 ms
|
||||
2026-10-23T22:00:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 11.927/12.077/12.313/0.094 ms
|
||||
2026-10-23T22:00:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 46.508/46.570/46.637/0.029 ms
|
||||
2026-10-23T22:00:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 17.315/17.438/17.544/0.060 ms
|
||||
2026-10-23T22:00:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 23.921/24.043/24.171/0.061 ms
|
||||
2026-10-23T22:00:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 44.302/44.443/44.599/0.078 ms
|
||||
2026-10-23T22:00:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3819ms rtt min/avg/max/mdev = 301.528/301.832/302.479/0.305 ms, pipe 2
|
||||
2026-10-23T22:00:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 337.173/337.340/338.989/0.381 ms, pipe 2
|
||||
2026-10-23T22:00:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 315.068/315.174/315.269/0.048 ms, pipe 2
|
||||
2026-10-23T22:00:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 350.017/350.122/350.213/0.047 ms, pipe 2
|
||||
2026-10-23T22:00:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 388.667/388.814/388.978/0.074 ms, pipe 2
|
||||
2026-10-23T22:00:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3821ms rtt min/avg/max/mdev = 435.464/435.565/435.666/0.060 ms, pipe 3
|
||||
2026-10-23T22:00:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3824ms rtt min/avg/max/mdev = 413.817/413.971/414.185/0.096 ms, pipe 3
|
||||
2026-10-23T22:00:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 312.258/312.306/312.415/0.038 ms, pipe 2
|
||||
2026-10-23T22:00:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 142.268/142.306/142.392/0.027 ms
|
||||
2026-10-23T22:00:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 135.687/135.728/135.771/0.024 ms
|
||||
2026-10-23T22:10:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 187.376/187.451/187.553/0.048 ms
|
||||
2026-10-23T22:10:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3947ms rtt min/avg/max/mdev = 0.025/0.046/0.056/0.009 ms
|
||||
2026-10-23T22:10:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 11.178/11.277/11.354/0.036 ms
|
||||
2026-10-23T22:10:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 384.279/384.354/384.494/0.049 ms, pipe 2
|
||||
2026-10-23T22:10:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 347.054/347.187/347.408/0.080 ms, pipe 2
|
||||
2026-10-23T22:10:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 314.707/314.802/315.584/0.181 ms, pipe 2
|
||||
2026-10-23T22:10:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 138.370/138.473/138.655/0.063 ms
|
||||
2026-10-23T22:10:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 145.637/145.779/146.238/0.130 ms
|
||||
2026-10-23T22:10:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3931ms rtt min/avg/max/mdev = 0.634/0.753/0.996/0.095 ms
|
||||
2026-10-23T22:10:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 11.951/12.002/12.159/0.054 ms
|
||||
2026-10-23T22:10:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 46.529/46.598/46.681/0.040 ms
|
||||
2026-10-23T22:10:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 17.323/17.467/17.791/0.094 ms
|
||||
2026-10-23T22:10:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 23.877/23.963/24.057/0.046 ms
|
||||
2026-10-23T22:10:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 44.361/44.424/44.515/0.040 ms
|
||||
2026-10-23T22:10:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 301.476/301.910/302.507/0.364 ms, pipe 2
|
||||
2026-10-23T22:10:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 337.211/337.275/337.357/0.037 ms, pipe 2
|
||||
2026-10-23T22:10:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3818ms rtt min/avg/max/mdev = 316.771/316.842/316.939/0.041 ms, pipe 2
|
||||
2026-10-23T22:10:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 350.014/350.149/350.315/0.083 ms, pipe 2
|
||||
2026-10-23T22:10:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 388.602/388.726/388.933/0.109 ms, pipe 2
|
||||
2026-10-23T22:10:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3828ms rtt min/avg/max/mdev = 435.510/435.585/435.896/0.083 ms, pipe 3
|
||||
2026-10-23T22:10:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3822ms rtt min/avg/max/mdev = 413.229/413.420/414.061/0.222 ms, pipe 3
|
||||
2026-10-23T22:10:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 332.473/332.686/332.898/0.119 ms, pipe 2
|
||||
2026-10-23T22:10:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3810ms rtt min/avg/max/mdev = 142.257/142.305/142.352/0.023 ms
|
||||
2026-10-23T22:10:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 135.619/135.658/135.729/0.024 ms
|
||||
2026-10-23T22:20:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 187.308/187.706/193.458/1.321 ms
|
||||
2026-10-23T22:20:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3948ms rtt min/avg/max/mdev = 0.029/0.052/0.072/0.011 ms
|
||||
2026-10-23T22:20:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 11.273/11.331/11.538/0.058 ms
|
||||
2026-10-23T22:20:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 384.274/384.370/384.460/0.046 ms, pipe 2
|
||||
2026-10-23T22:20:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 347.034/347.123/347.213/0.049 ms, pipe 2
|
||||
2026-10-23T22:20:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 318.896/318.952/319.023/0.041 ms, pipe 2
|
||||
2026-10-23T22:20:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 138.433/138.485/138.565/0.035 ms
|
||||
2026-10-23T22:20:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 145.702/146.030/148.975/0.713 ms
|
||||
2026-10-23T22:20:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3927ms rtt min/avg/max/mdev = 0.660/0.763/0.998/0.113 ms
|
||||
2026-10-23T22:20:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 11.942/12.011/12.089/0.038 ms
|
||||
2026-10-23T22:20:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 46.516/46.603/46.710/0.047 ms
|
||||
2026-10-23T22:20:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 17.328/17.452/17.568/0.055 ms
|
||||
2026-10-23T22:20:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 24.076/24.302/24.655/0.158 ms
|
||||
2026-10-23T22:20:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 44.358/44.492/44.567/0.051 ms
|
||||
2026-10-23T22:20:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 301.441/301.961/303.046/0.432 ms, pipe 2
|
||||
2026-10-23T22:20:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3816ms rtt min/avg/max/mdev = 337.226/337.275/337.312/0.024 ms, pipe 2
|
||||
2026-10-23T22:20:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 309.170/309.269/309.669/0.110 ms, pipe 2
|
||||
2026-10-23T22:20:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 350.032/350.163/350.521/0.100 ms, pipe 2
|
||||
2026-10-23T22:20:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 388.548/388.693/388.923/0.093 ms, pipe 2
|
||||
2026-10-23T22:20:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3831ms rtt min/avg/max/mdev = 435.487/435.576/435.753/0.059 ms, pipe 3
|
||||
2026-10-23T22:20:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3834ms rtt min/avg/max/mdev = 413.766/413.986/414.889/0.261 ms, pipe 3
|
||||
2026-10-23T22:20:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 15 received, 25% packet loss, time 3841ms rtt min/avg/max/mdev = 333.509/334.321/338.008/1.410 ms, pipe 2
|
||||
2026-10-23T22:20:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 142.253/142.308/142.350/0.022 ms
|
||||
2026-10-23T22:20:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 135.756/135.807/135.844/0.024 ms
|
||||
2026-10-23T22:30:00Z hnl 208.83.236.158 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 187.373/188.586/208.291/4.534 ms, pipe 2
|
||||
2026-10-23T22:30:00Z syd 207.148.81.200 20 packets transmitted, 20 received, 0% packet loss, time 3949ms rtt min/avg/max/mdev = 0.025/0.045/0.071/0.012 ms
|
||||
2026-10-23T22:30:00Z mel 67.219.106.57 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 11.218/11.297/11.399/0.050 ms
|
||||
2026-10-23T22:30:00Z jnb 139.84.229.29 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 384.231/384.330/384.419/0.047 ms, pipe 2
|
||||
2026-10-23T22:30:00Z scl 64.176.28.246 20 packets transmitted, 20 received, 0% packet loss, time 3813ms rtt min/avg/max/mdev = 347.054/347.156/347.201/0.035 ms, pipe 2
|
||||
2026-10-23T22:30:00Z sao 216.128.173.160 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 314.735/314.788/314.871/0.032 ms, pipe 2
|
||||
2026-10-23T22:30:00Z lax 149.28.82.222 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 138.362/138.463/138.656/0.077 ms
|
||||
2026-10-23T22:30:00Z icn 141.164.52.85 20 packets transmitted, 20 received, 0% packet loss, time 3804ms rtt min/avg/max/mdev = 143.039/143.189/143.682/0.136 ms
|
||||
2026-10-23T22:30:00Z au-syd-as4826 114.31.201.91 20 packets transmitted, 20 received, 0% packet loss, time 3943ms rtt min/avg/max/mdev = 0.623/0.754/0.987/0.107 ms
|
||||
2026-10-23T22:30:00Z au-mel-as4826 49.255.112.151 20 packets transmitted, 20 received, 0% packet loss, time 3807ms rtt min/avg/max/mdev = 11.926/12.024/12.168/0.054 ms
|
||||
2026-10-23T22:30:00Z au-ept-as4826 114.31.207.7 20 packets transmitted, 20 received, 0% packet loss, time 3817ms rtt min/avg/max/mdev = 46.523/46.580/46.672/0.036 ms
|
||||
2026-10-23T22:30:00Z au-bne-as4826 49.255.158.255 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 17.337/17.439/17.539/0.057 ms
|
||||
2026-10-23T22:30:00Z nz-akl-as38064 202.46.184.4 20 packets transmitted, 20 received, 0% packet loss, time 3808ms rtt min/avg/max/mdev = 23.911/24.050/24.132/0.057 ms
|
||||
2026-10-23T22:30:00Z nc-nou-as45345 103.2.186.195 20 packets transmitted, 20 received, 0% packet loss, time 3815ms rtt min/avg/max/mdev = 44.360/44.582/46.880/0.531 ms
|
||||
2026-10-23T22:30:00Z cl-scl-as64112 170.247.95.81 20 packets transmitted, 20 received, 0% packet loss, time 3812ms rtt min/avg/max/mdev = 301.428/301.776/302.864/0.340 ms, pipe 2
|
||||
2026-10-23T22:30:00Z ar-bue-as4270 170.210.5.200 20 packets transmitted, 20 received, 0% packet loss, time 3806ms rtt min/avg/max/mdev = 337.214/337.285/337.531/0.067 ms, pipe 2
|
||||
2026-10-23T22:30:00Z br-sao-as22548 200.160.6.19 20 packets transmitted, 20 received, 0% packet loss, time 3809ms rtt min/avg/max/mdev = 316.811/316.867/316.995/0.052 ms, pipe 2
|
||||
2026-10-23T22:30:00Z br-for-as37468 170.238.235.214 20 packets transmitted, 20 received, 0% packet loss, time 3814ms rtt min/avg/max/mdev = 350.007/350.091/350.194/0.051 ms, pipe 2
|
||||
2026-10-23T22:30:00Z ao-lad-as37468 102.130.66.11 20 packets transmitted, 20 received, 0% packet loss, time 3811ms rtt min/avg/max/mdev = 388.631/388.751/388.889/0.071 ms, pipe 2
|
||||
2026-10-23T22:30:00Z za-jnb-as37468 102.130.68.151 20 packets transmitted, 20 received, 0% packet loss, time 3827ms rtt min/avg/max/mdev = 435.495/435.556/435.640/0.040 ms, pipe 3
|
||||
2026-10-23T22:30:00Z za-cpt-as37199 197.155.3.27 20 packets transmitted, 20 received, 0% packet loss, time 3825ms rtt min/avg/max/mdev = 412.097/412.174/412.337/0.066 ms, pipe 3
|
||||
2026-10-23T22:30:00Z id-jkt-as4622 203.119.52.122 20 packets transmitted, 19 received, 5% packet loss, time 3824ms rtt min/avg/max/mdev = 332.550/332.952/335.198/0.590 ms, pipe 2
|
||||
2026-10-23T22:30:00Z us-lax-as6939 64.71.131.76 20 packets transmitted, 20 received, 0% packet loss, time 3806ms rtt min/avg/max/mdev = 142.247/142.307/142.356/0.025 ms
|
||||
2026-10-23T22:30:00Z kr-sel-as3491 63.222.106.8 20 packets transmitted, 20 received, 0% packet loss, time 3820ms rtt min/avg/max/mdev = 135.713/135.809/135.874/0.046 ms
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,20 @@
|
||||
created gl-syd (vc2-1c-1gb)
|
||||
created gl-mel (vc2-1c-1gb)
|
||||
created gl-jnb (vc2-1c-1gb)
|
||||
created gl-scl (vc2-1c-1gb)
|
||||
created gl-sao (vc2-1c-1gb)
|
||||
hnl vc2-1c-1gb: POST /instances: HTTP 400 {"error":"Cannot add instance plan is not available in the selected region","status":400}
|
||||
hnl vc2-1c-2gb: POST /instances: HTTP 400 {"error":"Cannot add instance plan is not available in the selected region","status":400}
|
||||
created gl-lax (vc2-1c-1gb)
|
||||
created gl-icn (vc2-1c-1gb)
|
||||
teardown scheduled in 26 h (systemd user timer globe-latency-teardown)
|
||||
0/7 active after 0 s
|
||||
7/7 active after 15 s
|
||||
gl-syd 207.148.81.200: loop active
|
||||
gl-mel 67.219.106.57: loop active
|
||||
gl-jnb 139.84.229.29: loop active
|
||||
gl-scl 64.176.28.246: loop active
|
||||
gl-sao 216.128.173.160: loop active
|
||||
gl-lax 149.28.82.222: loop active
|
||||
gl-icn 141.164.52.85: loop active
|
||||
state saved to /home/scout/quests/globe-latency/data/vps/state.json
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+426
@@ -0,0 +1,426 @@
|
||||
"""Single-file data hand-off: every measurement, every source, one JSON.
|
||||
|
||||
python3 export.py -> handoff/cable_latency_survey_data_v2.json
|
||||
|
||||
v2 adds cable_geometry and cable_routes; every v1 field is produced unchanged.
|
||||
"""
|
||||
import calendar, glob, json, math, os, re, statistics, time
|
||||
from collections import defaultdict
|
||||
from models import MODELS, distance, floor_ms, C_FIBER, C_VACUUM, R, N_FIBER
|
||||
from measure import TARGETS, EXTRA_SITES, ROUTE_ONLY_SITES, HOME_NEAR
|
||||
|
||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||
P = lambda *a: os.path.join(HERE, *a)
|
||||
OUT = P("handoff", "cable_latency_survey_data_v2.json")
|
||||
V1 = dict(generated_utc="2026-10-23T22:45:53Z", sha256="f3cb761f0bc40e618b2ba0796d8e0415edbc070053f7170fd1577bdca6721405")
|
||||
ALIAS = {"Sao Paulo": "São Paulo"}
|
||||
RX = re.compile(r"^(\S+) (\S+) (\S+) .*?(\d+) packets transmitted, (\d+) received.*?= ([\d.]+)/([\d.]+)/([\d.]+)/([\d.]+) ms")
|
||||
RXLOSS = re.compile(r"(\d+(?:\.\d+)?)% packet loss")
|
||||
|
||||
anchors_all = {x["fqdn"].split(".")[0]: x for x in json.load(open(P("raw/ripe_anchors_all.json")))}
|
||||
net = json.load(open(P("data/network.json")))
|
||||
cab = json.load(open(P("data/cables.json")))
|
||||
route_names = [t[0] for t in TARGETS] + [e[0] for e in EXTRA_SITES] + [e[0] for e in ROUTE_ONLY_SITES]
|
||||
city_pos = {t[0]: (t[3], t[4]) for t in TARGETS}
|
||||
city_pos.update({n: (la, lo) for n, la, lo in EXTRA_SITES + ROUTE_ONLY_SITES})
|
||||
city_anchor = {t[0]: t[2] for t in TARGETS}
|
||||
TIER = lambda T, km: None if T is None or km is None else ("vacuum" if T < floor_ms(km, C_VACUUM) else "fibre" if T < floor_ms(km) else "ok")
|
||||
r2 = lambda x: None if x is None else round(x, 2)
|
||||
r1 = lambda x: None if x is None else round(x, 1)
|
||||
|
||||
sites = {}
|
||||
|
||||
|
||||
def site(sid, **kw):
|
||||
if sid not in sites:
|
||||
sites[sid] = dict(id=sid, **kw)
|
||||
return sid
|
||||
|
||||
|
||||
def anchor_site(fqdn):
|
||||
a = anchors_all[fqdn]
|
||||
lon, lat = a["geometry"]["coordinates"]
|
||||
return site(f"ripe:{fqdn}", type="ripe_atlas_anchor", name=a["city"], country=a["country"], lat=round(lat, 4), lon=round(lon, 4),
|
||||
ip=a["ip_v4"], asn=a.get("as_v4"), location_basis="published by the anchor host (RIPE Atlas)")
|
||||
|
||||
|
||||
def city_site(city):
|
||||
if city in city_anchor:
|
||||
return anchor_site(city_anchor[city])
|
||||
la, lo = city_pos[city]
|
||||
return site(f"city:{city}", type="city", name=city, lat=la, lon=lo, location_basis="data-centre city")
|
||||
|
||||
|
||||
def tests(T, slack, pos_a, pos_b, route_key):
|
||||
"""distances, fibre floors and verdicts for both distance kinds, all four maps"""
|
||||
km = {"straight": {m: distance(m, pos_a, pos_b) for m in MODELS}, "cable_route": None}
|
||||
if route_key is not None:
|
||||
km["cable_route"] = {m: route_key[m] for m in MODELS}
|
||||
out = dict(km={}, floor_fibre_ms={}, verdict={})
|
||||
for kind, d in km.items():
|
||||
if d is None:
|
||||
out["km"][kind] = out["floor_fibre_ms"][kind] = out["verdict"][kind] = None
|
||||
continue
|
||||
eff = {m: max(0.0, d[m] - slack) for m in MODELS}
|
||||
out["km"][kind] = {m: r1(d[m]) for m in MODELS}
|
||||
out["floor_fibre_ms"][kind] = {m: r2(floor_ms(eff[m])) for m in MODELS}
|
||||
out["verdict"][kind] = {m: TIER(T, eff[m]) for m in MODELS}
|
||||
return out
|
||||
|
||||
|
||||
def live_route(city_a, city_b):
|
||||
if city_a not in route_names or city_b not in route_names or city_a == city_b:
|
||||
return None, []
|
||||
i, j = sorted((route_names.index(city_a), route_names.index(city_b)))
|
||||
r = net["live"].get(f"{i}-{j}")
|
||||
return ({m: r[m]["km"] for m in MODELS}, r["globe"]["via"]) if r else (None, [])
|
||||
|
||||
|
||||
M = [] # measurement records
|
||||
EXCL = []
|
||||
|
||||
# ---------------- Globalping (live grid) ----------------
|
||||
gp_runs = []
|
||||
for f in sorted(glob.glob(P("data/live_2*.json"))) + [P("data/live_run2.json")]:
|
||||
run = json.load(open(f))
|
||||
rn = len(gp_runs) + 1
|
||||
gp_runs.append(dict(run=rn, started_utc=run["started"], packets=run["packets"]))
|
||||
key = lambda c: (c["src_city"], c["src_network"], c["src_asn"])
|
||||
local = {key(c): c for c in run["cells"] if c["min"] is not None and c["dst_city"] == ALIAS.get(c["src_city"], c["src_city"])}
|
||||
for c in run["cells"]:
|
||||
city = ALIAS.get(c["src_city"], c["src_city"])
|
||||
pid = site(f"globalping:run{rn}:{city}:AS{c['src_asn']}", type="globalping_probe", name=city, country=c["src_country"],
|
||||
lat=c["src_lat"], lon=c["src_lon"], asn=c["src_asn"], network=c["src_network"],
|
||||
location_basis="Globalping geolocation (city level); tests use the same-city RIPE anchor as the position")
|
||||
tid = anchor_site(c["dst_anchor"])
|
||||
loc = local.get(key(c))
|
||||
rec = dict(source="globalping", run=rn, frm=pid, to=tid, time_utc=run["started"], packets=run["packets"], runs=1,
|
||||
rtt_statistic="minimum", rtt_ms=r2(c["min"]), rtt_avg_ms=r2(c["avg"]), rtt_max_ms=r2(c["max"]),
|
||||
loss_pct=c["loss"], globalping_measurement=c["measurement"])
|
||||
if c["dst_city"] == city:
|
||||
rec.update(flags=["local_reference"] + (["no_reply"] if c["min"] is None else []), note="probe to the anchor in its own city: this is the probe's allowance")
|
||||
M.append(rec); continue
|
||||
if c["min"] is None:
|
||||
rec.update(flags=["no_reply"]); M.append(rec); EXCL.append(dict(source="globalping", run=rn, frm=pid, to=tid, reason="no reply")); continue
|
||||
if loc is None:
|
||||
rec.update(flags=["no_local_reference"]); M.append(rec)
|
||||
why = "the anchor in the probe's own city did not reply" if city in city_anchor else "no anchor in the probe's city was among the targets"
|
||||
EXCL.append(dict(source="globalping", run=rn, frm=pid, to=tid, reason=f"{why}, so no allowance"))
|
||||
continue
|
||||
pos_from = anchor_site(loc["dst_anchor"]) # the anchor this probe's allowance was actually measured to
|
||||
T = c["min"] + loc["min"]
|
||||
rk, via = live_route(city, c["dst_city"])
|
||||
pa, pb = (sites[pos_from]["lat"], sites[pos_from]["lon"]), (c["dst_lat"], c["dst_lon"])
|
||||
rec.update(from_position=pos_from, to_position=tid, allowance_ms=r2(loc["min"]), slack_km=25, test_ms=r2(T),
|
||||
route_cities=[city, c["dst_city"]], cable_route_via=via, **tests(T, 25, pa, pb, rk))
|
||||
M.append(rec)
|
||||
|
||||
# ---------------- our Vultr servers ----------------
|
||||
vst = json.load(open(P("data/vps/state.json")))
|
||||
LOCAL = {"syd": "Sydney", "mel": "Melbourne", "jnb": "Johannesburg", "scl": "Santiago", "sao": "São Paulo", "lax": "Los Angeles", "icn": "Seoul"}
|
||||
node = {n["code"]: n for n in vst["nodes"]}
|
||||
fq_city = {t[2]: t[0] for t in TARGETS}
|
||||
for n in vst["nodes"]:
|
||||
site(f"vultr:{n['code']}", type="vultr_vps", name=n["city"], lat=n["lat"], lon=n["lon"], ip=n["ip"], plan=n["plan"],
|
||||
started_utc=n["started"], location_basis="Vultr data-centre city; tests use the same-city RIPE anchor as the position (Honolulu: the city)")
|
||||
series = defaultdict(list)
|
||||
for n in vst["nodes"]:
|
||||
f = P("data/vps", n["code"], "ping.log")
|
||||
if not os.path.exists(f):
|
||||
continue
|
||||
for line in open(f):
|
||||
m = RX.match(line)
|
||||
if m:
|
||||
lm = RXLOSS.search(line)
|
||||
series[(n["code"], m.group(2))].append([m.group(1), float(m.group(6)), float(m.group(7)), float(m.group(8)), float(m.group(9)),
|
||||
float(lm.group(1)) if lm else None, int(m.group(4))])
|
||||
vlocal = {}
|
||||
for code, city in LOCAL.items():
|
||||
s = series.get((code, city_anchor[city]))
|
||||
if s:
|
||||
vlocal[code] = min(r[1] for r in s)
|
||||
vcity = lambda code: LOCAL.get(code) or ("Honolulu" if code == "hnl" else None)
|
||||
for (code, tgt), rows in sorted(series.items()):
|
||||
if tgt == code:
|
||||
continue # each server also lists itself; a self-ping is not a measurement
|
||||
src = f"vultr:{code}"
|
||||
tcity = vcity(tgt) if tgt in node else fq_city.get(tgt)
|
||||
tid = f"vultr:{tgt}" if tgt in node else anchor_site(tgt)
|
||||
best = min(r[1] for r in rows)
|
||||
rec = dict(source="vultr", frm=src, to=tid, time_utc=[rows[0][0], rows[-1][0]], packets=rows[0][6], runs=len(rows),
|
||||
rtt_statistic="minimum over all runs", rtt_ms=r2(best), rtt_median_of_run_minimums_ms=r2(statistics.median(r[1] for r in rows)),
|
||||
rtt_avg_ms=r2(statistics.mean(r[2] for r in rows)), per_run=[[r[0], r[1], r[2], r[3], r[4], r[5]] for r in rows])
|
||||
scity = vcity(code)
|
||||
if scity == tcity:
|
||||
rec.update(flags=["local_reference"], note="server to the anchor in its own city: this is the server's allowance"); M.append(rec); continue
|
||||
allow = vlocal.get(code, 0.0) + (vlocal.get(tgt, 0.0) if tgt in node else 0.0)
|
||||
pos_from = city_site(scity)
|
||||
pos_to = city_site(tcity) if tgt in node else tid
|
||||
T = best + allow
|
||||
rk, via = live_route(scity, tcity)
|
||||
pa, pb = (sites[pos_from]["lat"], sites[pos_from]["lon"]), (sites[pos_to]["lat"], sites[pos_to]["lon"])
|
||||
rec.update(from_position=pos_from, to_position=pos_to, allowance_ms=r2(allow), slack_km=25, test_ms=r2(T),
|
||||
route_cities=[scity, tcity], cable_route_via=via, **tests(T, 25, pa, pb, rk))
|
||||
M.append(rec)
|
||||
|
||||
# ---------------- home machine, Michigan ----------------
|
||||
hrows = defaultdict(list)
|
||||
if os.path.exists(P("data/home/ping.log")):
|
||||
for line in open(P("data/home/ping.log")):
|
||||
m = RX.match(line)
|
||||
if m:
|
||||
hrows[m.group(2)].append([m.group(1), float(m.group(6)), float(m.group(7)), float(m.group(8)), float(m.group(9))])
|
||||
home_ref = ROUTE_ONLY_SITES[0][0] if ROUTE_ONLY_SITES else None
|
||||
if hrows:
|
||||
near = {n: min(r[1] for r in hrows[n]) for n, _ in HOME_NEAR if hrows.get(n)}
|
||||
ref = min(near, key=near.get)
|
||||
ref_rtt = near[ref]
|
||||
ref_site = anchor_site(ref)
|
||||
site("home:michigan", type="home_connection", name="Home connection, Michigan", region="Michigan, US", lat=None, lon=None,
|
||||
location_basis=f"exact location withheld; tests use the nearest RIPE anchor by ping, {ref} ({sites[ref_site]['name']}), "
|
||||
f"with the {ref_rtt:.2f} ms ping to it as the allowance (puts the home within {ref_rtt / 2000 * C_FIBER:.0f} km of it by fibre)")
|
||||
for tgt, rows in sorted(hrows.items()):
|
||||
if tgt in node:
|
||||
tid, tcity = f"vultr:{tgt}", vcity(tgt)
|
||||
else:
|
||||
tid, tcity = anchor_site(tgt), fq_city.get(tgt)
|
||||
best = min(r[1] for r in rows)
|
||||
rec = dict(source="home", frm="home:michigan", to=tid, time_utc=[rows[0][0], rows[-1][0]], packets=20, runs=len(rows),
|
||||
rtt_statistic="minimum over all runs", rtt_ms=r2(best), rtt_avg_ms=r2(statistics.mean(r[2] for r in rows)),
|
||||
per_run=[[r[0], r[1], r[2], r[3], r[4]] for r in rows])
|
||||
if tgt in dict(HOME_NEAR):
|
||||
rec.update(flags=["home_reference_candidate"] + (["local_reference"] if tgt == ref else []))
|
||||
M.append(rec); continue
|
||||
allow = ref_rtt + (vlocal.get(tgt, 0.0) if tgt in node else 0.0)
|
||||
pos_to = city_site(tcity) if tgt in node else tid
|
||||
T = best + allow
|
||||
rk, via = live_route(home_ref, tcity) if home_ref else (None, [])
|
||||
pa, pb = (sites[ref_site]["lat"], sites[ref_site]["lon"]), (sites[pos_to]["lat"], sites[pos_to]["lon"])
|
||||
rec.update(from_position=ref_site, to_position=pos_to, allowance_ms=r2(allow), slack_km=25, test_ms=r2(T),
|
||||
route_cities=[home_ref, tcity], cable_route_via=via, **tests(T, 25, pa, pb, rk))
|
||||
M.append(rec)
|
||||
|
||||
# ---------------- WonderNetwork 2020 ----------------
|
||||
wn = json.load(open(P("data/wn_clean.json")))
|
||||
gap = set(net["wn_gap"])
|
||||
for sid, s in wn["servers"].items():
|
||||
site(f"wn:{sid}", type="wondernetwork_server", name=s["name"], country=s["country"], lat=s["lat"], lon=s["lon"],
|
||||
location_basis="WonderNetwork server list (servers-2020-07-19.csv)")
|
||||
for i, r in enumerate(wn["pairs"]):
|
||||
A, B = wn["servers"][r["a"]], wn["servers"][r["b"]]
|
||||
T = r["rtt"] + 1.0
|
||||
rk = None if i in gap else {m: net["wn_km"][m][i] for m in MODELS}
|
||||
rec = dict(source="wondernetwork", frm=f"wn:{r['a']}", to=f"wn:{r['b']}", runs=r["n"],
|
||||
rtt_ms=r["rtt"], rtt_min_ms=r["best"], rtt_avg_ms=r["avg"], allowance_ms=1.0, slack_km=200, test_ms=r2(T),
|
||||
**tests(T, 200, (A["lat"], A["lon"]), (B["lat"], B["lon"]), rk))
|
||||
if i in gap:
|
||||
rec["flags"] = ["cable_route_gap"]
|
||||
EXCL.append(dict(source="wondernetwork", frm=rec["frm"], to=rec["to"], reason="faster than the globe's own cable route: a cable missing from TeleGeography; cable-route verdicts withheld on every map"))
|
||||
M.append(rec)
|
||||
for s in wn["mislocated"]:
|
||||
EXCL.append(dict(source="wondernetwork", server=f"{s['name']} ({s['country']})",
|
||||
reason="impossible even on the globe, so its listed location is wrong; all its pairs removed"))
|
||||
|
||||
# ---------------- summary: per source, per city-pair route (best test value), per map ----------------
|
||||
def routes(recs):
|
||||
best = {}
|
||||
for r in recs:
|
||||
if r.get("verdict") is None or "test_ms" not in r:
|
||||
continue
|
||||
k = tuple(sorted(r["route_cities"])) if "route_cities" in r else tuple(sorted((r["frm"], r["to"])))
|
||||
if k not in best or r["test_ms"] < best[k]["test_ms"]:
|
||||
best[k] = r
|
||||
return list(best.values())
|
||||
|
||||
|
||||
def tally(rs):
|
||||
out = {"routes": len(rs)}
|
||||
for kind in ("straight", "cable_route"):
|
||||
out[kind] = {}
|
||||
for m in MODELS:
|
||||
v = [r["verdict"][kind][m] for r in rs if r["verdict"].get(kind)]
|
||||
out[kind][m] = {"tested": len(v), "beats_fibre_only": v.count("fibre"), "beats_vacuum": v.count("vacuum"),
|
||||
"impossible_total": v.count("fibre") + v.count("vacuum")}
|
||||
return out
|
||||
|
||||
|
||||
groups = {"globalping": [r for r in M if r["source"] == "globalping"], "vultr": [r for r in M if r["source"] == "vultr"],
|
||||
"globalping+vultr": [r for r in M if r["source"] in ("globalping", "vultr")], "home": [r for r in M if r["source"] == "home"],
|
||||
"all_live": [r for r in M if r["source"] in ("globalping", "vultr", "home")],
|
||||
"wondernetwork": [r for r in M if r["source"] == "wondernetwork"]}
|
||||
summary = {g: tally(routes(v)) for g, v in groups.items()}
|
||||
for g, v in groups.items():
|
||||
summary[g]["measurement_records"] = len(v)
|
||||
|
||||
# ---------------- cables, crossings, solver ----------------
|
||||
cables = []
|
||||
for c in cab["cables"]:
|
||||
cables.append(dict(id=c["id"], name=c["name"], published_length_km=c["length"], ready_for_service=c["rfs"], landing_points=c["landings"],
|
||||
farthest_landings=c["span_ends"]["globe"], farthest_landings_km={m: c["span"][m] for m in MODELS},
|
||||
drawn_route_km={m: c["route"][m] for m in MODELS},
|
||||
too_short_for_map={m: c["span"][m] > c["length"] * 1.02 + 50 for m in MODELS}))
|
||||
cidx = {c["id"]: c for c in cables}
|
||||
crossings = []
|
||||
for t in json.load(open(P("data/trace.json"))):
|
||||
c = cidx.get(t["cable"])
|
||||
rec = dict(src=anchor_site(t["src"]), dst=anchor_site(t["dst"]), sea=t["sea"], cable=t["cable"], ripe_measurement=t["msm"],
|
||||
ripe_probe=t["probe"], traceroutes=t["runs"], jump_ms=t["jump"], end_to_end_ms=t["end"],
|
||||
jump_between_hops=[t["hops"][t["before"]]["hop"], t["hops"][t["after"]]["hop"]],
|
||||
hops=[dict(hop=h["hop"], ip=h["ip"], rdns=h["name"] or None, rtt_ms=h["rtt"], raw_min_ms=h["raw"]) for h in t["hops"]])
|
||||
if c:
|
||||
rec["cable_published_km"] = c["published_length_km"]
|
||||
rec["cable_drawn_route_km"] = c["drawn_route_km"]
|
||||
rec["floor_fibre_ms_along_drawn_route"] = {m: r2(floor_ms(c["drawn_route_km"][m])) for m in MODELS}
|
||||
rec["verdict_along_drawn_route"] = {m: TIER(t["jump"], c["drawn_route_km"][m]) for m in MODELS}
|
||||
crossings.append(rec)
|
||||
solver = []
|
||||
for r in json.load(open(P("data/solver.json"))):
|
||||
solver.append(dict(map="North-pole AE, longitudes of cities south of the fixed latitude free", fixed_north_of_deg=r["pin"],
|
||||
speed="fibre" if r["speed"] == "fibre" else "vacuum", free_cities=r["free"], fits=r["fits"],
|
||||
min_shift_deg=r.get("lower"), found_shift_deg=r.get("upper"),
|
||||
min_shift_solar_minutes=None if r.get("lower") is None else round(r["lower"] * 4, 1),
|
||||
contradiction_margin_deg=r.get("margin"), proof=r.get("proof"),
|
||||
placement=None if not r.get("moved") else [dict(site=x[0], lat=x[1], lon_true=x[2], lon_placed=x[3]) for x in r["moved"]]))
|
||||
|
||||
# ---------------- cable geometry, and the routed path behind every cable_route km ----------------
|
||||
import network as NET
|
||||
from scipy.sparse.csgraph import dijkstra
|
||||
|
||||
wrap = lambda x: ((x + 180) % 360) - 180
|
||||
tg_lines = {}
|
||||
for f in json.load(open(P("raw/tg/cable-geo.json")))["features"]:
|
||||
tg_lines.setdefault(f["properties"]["id"], []).extend(f["geometry"]["coordinates"])
|
||||
geometry = []
|
||||
for cid in NET.cable_names:
|
||||
c = NET.meta[cid]
|
||||
geometry.append(dict(id=cid, name=c["name"], ready_for_service=c.get("rfs_year"), in_cables_list=cid in cidx,
|
||||
landing_points=[dict(name=p["name"], lon=NET.lp[p["id"]][0], lat=NET.lp[p["id"]][1])
|
||||
for p in c["landing_points"] if p["id"] in NET.lp],
|
||||
route=[[[wrap(p[0]), p[1]] for p in line] for line in tg_lines[cid]]))
|
||||
|
||||
|
||||
def traced(m, dist, pred, s, t):
|
||||
seq = [t]
|
||||
while seq[-1] != s and pred[seq[-1]] >= 0:
|
||||
seq.append(pred[seq[-1]])
|
||||
seq.reverse()
|
||||
legs, via, land_km = "", [], 0.0
|
||||
for u, v in zip(seq, seq[1:]):
|
||||
k, ci = NET.kind.get((min(u, v), max(u, v)), ("land", -1))
|
||||
legs += {"cable": "c", "link": "k", "land": "l"}[k]
|
||||
if k == "land":
|
||||
land_km += float(NET.G[m][min(u, v), max(u, v)])
|
||||
ci = -1
|
||||
if not via or via[-1] != ci:
|
||||
via.append(ci)
|
||||
return dict(km=r1(float(dist[t])), land_km=r1(land_km), via=[v for v in via if v >= 0], legs=legs, path=seq)
|
||||
|
||||
|
||||
live_routes = [dict(cities=[route_names[a], route_names[b]], maps={}) for a in range(len(route_names)) for b in range(a + 1, len(route_names))]
|
||||
wn_routes = [dict(servers=[f"wn:{r['a']}", f"wn:{r['b']}"], maps={}) for r in NET.wn["pairs"]]
|
||||
lsrc = [NET.live_city[n] for n in route_names]
|
||||
wsrc = {s: NET.wn_city[s] for s in NET.wn_ids}
|
||||
wcol = {s: i for i, s in enumerate(NET.wn_ids)}
|
||||
for m in MODELS:
|
||||
dist, pred = dijkstra(NET.G[m], directed=False, indices=lsrc, return_predecessors=True)
|
||||
for rt in live_routes:
|
||||
a, b = route_names.index(rt["cities"][0]), route_names.index(rt["cities"][1])
|
||||
rt["maps"][m] = traced(m, dist[a], pred[a], lsrc[a], lsrc[b])
|
||||
dist, pred = dijkstra(NET.G[m], directed=False, indices=[wsrc[s] for s in NET.wn_ids], return_predecessors=True)
|
||||
for rt, r in zip(wn_routes, NET.wn["pairs"]):
|
||||
a = wcol[r["a"]]
|
||||
rt["maps"][m] = traced(m, dist[a], pred[a], wsrc[r["a"]], NET.wn_city[r["b"]])
|
||||
used = sorted({n for rt in live_routes + wn_routes for v in rt["maps"].values() for n in v["path"]})
|
||||
renum = {n: i for i, n in enumerate(used)}
|
||||
for rt in live_routes + wn_routes:
|
||||
for v in rt["maps"].values():
|
||||
v["path"] = [renum[n] for n in v["path"]]
|
||||
KIND = {"v": "waypoint", "landing": "landing", "city": "site"}
|
||||
label = lambda n: None if n["kind"] == "v" else n["label"][2:] if n["kind"] == "city" and n["label"].startswith("L:") \
|
||||
else "wn:" + n["label"][2:] if n["kind"] == "city" else n["label"]
|
||||
route_nodes = [[NET.nodes[n]["lon"], NET.nodes[n]["lat"], KIND[NET.nodes[n]["kind"]], label(NET.nodes[n])] for n in used]
|
||||
|
||||
out = dict(
|
||||
dataset="Cable Latency Survey",
|
||||
generated_utc=time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()),
|
||||
revision=dict(version=2, supersedes=V1, changes="adds cable_geometry and cable_routes; all other fields are identical to version 1 apart from generated_utc"),
|
||||
constants=dict(c_vacuum_km_s=299792.458, fibre_group_index=N_FIBER, c_fibre_km_s=round(C_FIBER, 1), earth_radius_km=R),
|
||||
maps=dict(globe="sphere R=6371 km; great-circle distance",
|
||||
ae="azimuthal equidistant on the North Pole: r=R*(90-lat) in radians, angle=lon; distance = straight line in the plane",
|
||||
dualpole="azimuthal equidistant on 0N 0E; distance = straight line in the plane",
|
||||
mercator="x=R*((lon-180) mod 360) rad, y=R*ln(tan(45+lat/2)), lat clamped to +-85; no east-west wrap; distance = straight line"),
|
||||
test=dict(test_ms="rtt_ms + allowance_ms",
|
||||
floor_fibre_ms="2 * max(0, km - slack_km) / c_fibre_km_s * 1000",
|
||||
floor_vacuum_ms="2 * max(0, km - slack_km) / c_vacuum_km_s * 1000",
|
||||
verdict={"ok": "test_ms >= fibre floor", "fibre": "below the fibre floor (faster than light in glass)", "vacuum": "below the vacuum floor (faster than light in a vacuum)"},
|
||||
distance_kinds={"straight": "between from_position and to_position on that map",
|
||||
"cable_route": "shortest path over every in-service TeleGeography submarine cable (drawn waypoints) plus straight land links within a landmass, computed separately on each map; null where no route was computed"},
|
||||
allowance={"globalping": "probe's RTT to the RIPE anchor in its own city (same run)", "vultr": "server's best RTT to the anchor in its own city, plus the target server's when the target is one of ours; Honolulu 0",
|
||||
"home": "best RTT to the nearest RIPE anchor (plus the target server's own allowance)", "wondernetwork": "1 ms"},
|
||||
slack_km={"globalping": 25, "vultr": 25, "home": 25, "wondernetwork": 200}),
|
||||
sources=dict(
|
||||
globalping=dict(what="Globalping volunteer probes pinging RIPE Atlas anchors", url="https://globalping.io", runs=gp_runs),
|
||||
vultr=dict(what="our rented Vultr virtual servers pinging each other and RIPE Atlas anchors every 10 minutes, 20 packets", url="https://www.vultr.com",
|
||||
servers=[f"vultr:{n['code']}" for n in vst["nodes"]],
|
||||
originally_planned_end_utc=time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime(max(calendar.timegm(time.strptime(n["started"], "%Y-%m-%dT%H:%M:%SZ")) for n in vst["nodes"]) + 24 * 3600)),
|
||||
rounds_collected=max(len(v) for v in series.values()),
|
||||
ended_utc=max(r[0] for v in series.values() for r in v),
|
||||
status="stopped early by choice; servers deleted"),
|
||||
home=dict(what="pings from a home connection in Michigan, US, to RIPE Atlas anchors and our Vultr servers, 20 packets per run", location="withheld; see site home:michigan"),
|
||||
wondernetwork=dict(what="WonderNetwork public one-day ping dump between its servers, 30 pings per run", url="https://wondernetwork.com/pings",
|
||||
dataset="https://wp-public-data.s3.amazonaws.com/pings/pings-2020-07-19-2020-07-20.csv.gz",
|
||||
servers_file="https://wp-public-data.s3.amazonaws.com/pings/servers-2020-07-19.csv",
|
||||
record_defaults=dict(time_utc=["2020-07-19T00:00:00Z", "2020-07-20T23:59:59Z"], packets_per_run=30,
|
||||
direction="both directions pooled", rtt_statistic="rtt_ms = median of per-run minimums; rtt_min_ms = fastest run",
|
||||
positions="from/to sites themselves")),
|
||||
ripe_atlas=dict(what="anchor positions; anchoring-mesh traceroutes for the crossings", url="https://atlas.ripe.net"),
|
||||
telegeography=dict(what="submarine cable routes, landing points and published lengths", url="https://www.submarinecablemap.com")),
|
||||
summary=summary,
|
||||
sites=sorted(sites.values(), key=lambda s: s["id"]),
|
||||
measurements=M,
|
||||
excluded=EXCL,
|
||||
cable_crossings=crossings,
|
||||
cables=dict(count=len(cables), rule="too_short_for_map when the farthest landing points are more than 2% + 50 km farther apart on that map than the published length",
|
||||
dropped_as_data_errors=[dict(name=d[0], published_km=d[1], globe_landings_km=d[2]) for d in cab["dropped"]], list=cables),
|
||||
cable_geometry=dict(
|
||||
what="every in-service cable in the routing network: TeleGeography drawn route and landing points",
|
||||
coordinates="[lon, lat] degrees, as published; lon wrapped to -180..180",
|
||||
drawn_route_km="cables.list[].drawn_route_km is the length of route on each map: great circle per segment on the globe, straight segment on flat maps. Drawn routes are schematic",
|
||||
count=len(geometry), list=geometry),
|
||||
cable_routes=dict(
|
||||
what="the path behind every measurements[].km.cable_route value, on each map",
|
||||
graph="nodes: cable waypoints, landing points, sites. Edges: consecutive waypoints of a cable; landing point to that cable's nearest waypoint; "
|
||||
"straight line between any two landing points or sites on the same landmass (Natural Earth 1:110m land, Antarctica excluded; "
|
||||
"points up to 1.2 deg off the coarse coastline join it; points outside every polygon are grouped within 50 km). "
|
||||
"Overland legs are straight and can cut across water (Singapore to Johannesburg is one landmass); that only shortens routes. "
|
||||
"Each map weights every edge with its own distance; shortest path by Dijkstra, per map",
|
||||
fields=dict(nodes="[lon, lat, kind, label]; lon/lat = cable_geometry or site coordinates rounded to 0.01 deg, as routed (lon 180 written as -180); label is the landing point, the live city, or the WonderNetwork server",
|
||||
path="indices into nodes, end to end", legs={"c": "along a cable, waypoint to waypoint", "k": "landing point to the cable", "l": "overland, straight"},
|
||||
via="indices into cable_geometry.list, in order", km="sum of the path's segment lengths on that map", land_km="part of km on l legs"),
|
||||
join={"live": "cities = route_cities of globalping, vultr and home measurements (either order)",
|
||||
"wondernetwork": "servers = [from, to] of wondernetwork measurements"},
|
||||
nodes=route_nodes, live=live_routes, wondernetwork=wn_routes),
|
||||
flat_map_solver=solver,
|
||||
)
|
||||
for i, r in enumerate(M): # stable ids, and rename frm -> from
|
||||
r["id"] = f"m{i + 1:05d}"
|
||||
r["from"] = r.pop("frm")
|
||||
for e in EXCL:
|
||||
if "frm" in e:
|
||||
e["from"] = e.pop("frm")
|
||||
os.makedirs(os.path.dirname(OUT), exist_ok=True)
|
||||
M[:] = [{"id": r["id"], **{k: v for k, v in r.items() if k != "id"}} for r in M]
|
||||
LONG = {"measurements": (out, "measurements"), "geometry": (out["cable_geometry"], "list"), "nodes": (out["cable_routes"], "nodes"),
|
||||
"live": (out["cable_routes"], "live"), "wn": (out["cable_routes"], "wondernetwork")}
|
||||
rows = {}
|
||||
for tag, (parent, key) in LONG.items(): # long lists: one item per line, rest indented
|
||||
rows[tag] = parent[key]
|
||||
parent[key] = f"@@{tag}@@"
|
||||
out["measurements"] = out.pop("measurements")
|
||||
txt = json.dumps(out, indent=1, ensure_ascii=False, allow_nan=False)
|
||||
for tag, items in rows.items():
|
||||
ind = re.search(rf'^( *)\S.*"@@{tag}@@"', txt, re.M).group(1)
|
||||
txt = txt.replace(f'"@@{tag}@@"', "[\n" + ",\n".join(ind + " " + json.dumps(x, ensure_ascii=False, separators=(",", ":"), allow_nan=False) for x in items) + "\n" + ind + "]")
|
||||
with open(OUT, "w") as f:
|
||||
f.write(txt + "\n")
|
||||
print(OUT, f"{os.path.getsize(OUT) / 1e6:.1f} MB", len(M), "measurements", len(sites), "sites")
|
||||
Executable
+39
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env bash
|
||||
# Download the third-party inputs that this repository does not redistribute.
|
||||
# raw/tg/ TeleGeography Submarine Cable Map (cables.py, network.py, build.py, export.py)
|
||||
# raw/wn/ WonderNetwork 2020-07-19/20 ping archive (analyze_wn.py)
|
||||
# raw/bgp/ RouteViews prefix2as, RIPE NCC AS names, PeeringDB (asmap.py)
|
||||
# The survey used the TeleGeography data as served on 2026-10-23; raw/tg.sha256
|
||||
# lists that snapshot. Later downloads may differ and change results slightly.
|
||||
set -euo pipefail
|
||||
cd "$(dirname "$0")"
|
||||
UA="cable-latency-survey/1.0 (+https://pingstats.aethercosmology.com)"
|
||||
get() { curl -sSf -A "$UA" --retry 3 -o "$1" "$2"; }
|
||||
mkdir -p raw/tg/cables raw/wn raw/bgp
|
||||
|
||||
TG=https://www.submarinecablemap.com/api/v3
|
||||
get raw/tg/cable-geo.json "$TG/cable/cable-geo.json"
|
||||
get raw/tg/landing-point-geo.json "$TG/landing-point/landing-point-geo.json"
|
||||
python3 - "$TG" "$UA" <<'PY'
|
||||
import json, sys, time, urllib.request
|
||||
tg, ua = sys.argv[1], sys.argv[2]
|
||||
ids = sorted({f["properties"]["id"] for f in json.load(open("raw/tg/cable-geo.json"))["features"]})
|
||||
for n, i in enumerate(ids, 1):
|
||||
req = urllib.request.Request(f"{tg}/cable/{i}.json", headers={"user-agent": ua})
|
||||
open(f"raw/tg/cables/{i}.json", "wb").write(urllib.request.urlopen(req, timeout=60).read())
|
||||
time.sleep(0.2)
|
||||
print(f"TeleGeography: {len(ids)} cables")
|
||||
PY
|
||||
get raw/tg/tga.json "$TG/cable/tasman-global-access-tga-cable.json"
|
||||
(cd raw && sha256sum -c --quiet tg.sha256 2>/dev/null && echo "TeleGeography data identical to the 2026-10-23 snapshot") \
|
||||
|| echo "note: TeleGeography data differs from the 2026-10-23 snapshot (raw/tg.sha256)"
|
||||
|
||||
S3=https://wp-public-data.s3.amazonaws.com/pings
|
||||
get raw/wn/pings-2020-07-19-2020-07-20.csv.gz "$S3/pings-2020-07-19-2020-07-20.csv.gz"
|
||||
get raw/wn/servers-2020-07-19.csv "$S3/servers-2020-07-19.csv"
|
||||
|
||||
get raw/bgp/routeviews-rv2-20261023-0200.pfx2as.gz \
|
||||
https://publicdata.caida.org/datasets/routing/routeviews-prefix2as/2026/10/routeviews-rv2-20261023-0200.pfx2as.gz
|
||||
get raw/bgp/asn.txt https://ftp.ripe.net/ripe/asnames/asn.txt
|
||||
for t in ixpfx ixlan ix; do get "raw/bgp/pdb_$t.json" "https://www.peeringdb.com/api/$t"; sleep 4; done
|
||||
echo "done; PeeringDB and AS names are current, not the 2026-10-27 copies used for data/asmap.json"
|
||||
+128
@@ -0,0 +1,128 @@
|
||||
"""Best attainable flat arrangements of the live measurements.
|
||||
|
||||
Latency only bounds distances from above, so an unconstrained flat map can
|
||||
always satisfy every measurement by shrinking. The meaningful question is how
|
||||
far a given flat map would have to be corrected. For each flat map and data
|
||||
source:
|
||||
|
||||
minimum correction D* the smallest D such that every city can be moved at
|
||||
most D km from where the map places it and every
|
||||
measured pair then lies within the distance light
|
||||
covers in the measured round trip:
|
||||
|p_i - m_i| <= D, |p_i - p_j| <= v * T_ij / 2 + 25 km
|
||||
Straight lines in the plane (the shortest possible
|
||||
cable). Convex (second-order cone), so the solver's
|
||||
optimum is global. Solved for fibre and vacuum speed.
|
||||
one-pair lower bound max over pairs of (|m_i - m_j| - U_ij) / 2: each end of
|
||||
one pair moves at most D, so this bound needs no solver.
|
||||
fixed budgets B every city within B km of its mapped position; the
|
||||
arrangement minimising the total excess distance over
|
||||
all pairs (fibre speed); the routes still inconsistent.
|
||||
|
||||
Positions are returned as longitude/latitude through the inverse of each map's
|
||||
projection, so the page draws them with the same projection as the map.
|
||||
|
||||
.venv/bin/python flatfit.py -> data/flatfit.json
|
||||
"""
|
||||
import json, math, os
|
||||
import numpy as np
|
||||
import cvxpy as cp
|
||||
from build import live
|
||||
from models import R, C_FIBER, C_VACUUM, ae_xy, dualpole_xy, mercator_xy
|
||||
|
||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||
SLACK = 25.0
|
||||
BUDGETS = [0, 100, 250, 500, 1000, 2000]
|
||||
SOURCES = {"all": lambda net: True, "ours": lambda net: "Vultr" in net,
|
||||
"gp": lambda net: "Vultr" not in net and not net.startswith("home"), "home": lambda net: net.startswith("home")}
|
||||
XY = {"ae": ae_xy, "dualpole": dualpole_xy, "mercator": mercator_xy}
|
||||
|
||||
|
||||
def inverse(m, x, y):
|
||||
"""Plane km -> (lon, lat) for each map; exact inverse of models.py."""
|
||||
if m == "ae":
|
||||
return math.degrees(math.atan2(x, -y)), 90 - math.degrees(math.hypot(x, y) / R)
|
||||
if m == "dualpole":
|
||||
rho = math.hypot(x, y)
|
||||
if rho < 1e-9:
|
||||
return 0.0, 0.0
|
||||
c = rho / R
|
||||
return math.degrees(math.atan2(x * math.sin(c), rho * math.cos(c))), math.degrees(math.asin(max(-1, min(1, y * math.sin(c) / rho))))
|
||||
lon = math.degrees(x / R) + 180
|
||||
return (lon + 180) % 360 - 180, math.degrees(2 * math.atan(math.exp(y / R))) - 90
|
||||
|
||||
|
||||
def pairs_for(keep, cells):
|
||||
best = {}
|
||||
for a, b, rtt, loc, run, net, *_ in cells:
|
||||
if keep(net):
|
||||
k = (min(a, b), max(a, b))
|
||||
best[k] = min(best.get(k, 1e9), rtt + loc)
|
||||
return best
|
||||
|
||||
|
||||
def solve(prob):
|
||||
prob.solve(solver="CLARABEL")
|
||||
assert prob.status in ("optimal", "optimal_inaccurate"), prob.status
|
||||
return prob
|
||||
|
||||
|
||||
def fit(m, sites, best, speed):
|
||||
v = C_FIBER if speed == "fibre" else C_VACUUM
|
||||
used = sorted({i for k in best for i in k})
|
||||
ix = {s: n for n, s in enumerate(used)}
|
||||
M = np.array([XY[m](sites[s][2], sites[s][3]) for s in used])
|
||||
I = np.array([ix[a] for a, b in best]); J = np.array([ix[b] for a, b in best])
|
||||
U = np.array([v * T / 2000 + SLACK for T in best.values()])
|
||||
p, D = cp.Variable((len(used), 2)), cp.Variable()
|
||||
near = cp.norm(p - M, axis=1)
|
||||
keep = [cp.norm(p[I] - p[J], axis=1) <= U]
|
||||
Dstar = float(solve(cp.Problem(cp.Minimize(D), [near <= D] + keep)).value)
|
||||
# among optimal arrangements, move as little in total as possible (clean picture)
|
||||
solve(cp.Problem(cp.Minimize(cp.sum(near)), [near <= Dstar * (1 + 1e-6) + 1e-3] + keep))
|
||||
P = p.value
|
||||
viol = float(np.max(np.linalg.norm(P[I] - P[J], axis=1) - U))
|
||||
gap = (np.linalg.norm(M[I] - M[J], axis=1) - U) / 2
|
||||
k = int(np.argmax(gap))
|
||||
lb = dict(km=round(float(max(0, gap[k])), 1), pair=[used[I[k]], used[J[k]]])
|
||||
return used, M, I, J, U, Dstar, P, viol, lb
|
||||
|
||||
|
||||
def budget_fit(M, I, J, U, B):
|
||||
p = cp.Variable(M.shape)
|
||||
near = cp.norm(p - M, axis=1)
|
||||
excess = cp.sum(cp.pos(cp.norm(p[I] - p[J], axis=1) - U))
|
||||
solve(cp.Problem(cp.Minimize(excess + 1e-3 * cp.sum(near)), [near <= B + 1e-6]))
|
||||
return p.value
|
||||
|
||||
|
||||
L = live()
|
||||
sites, cells = L["sites"], L["cells"]
|
||||
out = dict(method=__doc__.split("\n\n")[1].strip(), slack_km=SLACK, budgets_km=BUDGETS, sites=[s[0] for s in sites], fits={})
|
||||
for src, keep in SOURCES.items():
|
||||
best = pairs_for(keep, cells)
|
||||
out["fits"][src] = {}
|
||||
for m in XY:
|
||||
used, M, I, J, U, Dstar, P, viol, lb = fit(m, sites, best, "fibre")
|
||||
_, _, _, _, Uv, Dvac, Pv, violv, lbv = fit(m, sites, best, "vacuum")
|
||||
Uvac = np.array([C_VACUUM * T / 2000 + SLACK for T in best.values()])
|
||||
rows = []
|
||||
for B in BUDGETS + [Dstar]:
|
||||
Q = M if B == 0 else budget_fit(M, I, J, U, B)
|
||||
d = np.linalg.norm(Q[I] - Q[J], axis=1)
|
||||
bad = [[used[I[n]], used[J[n]], 2 if d[n] > Uvac[n] + 0.5 else 1] for n in range(len(d)) if d[n] > U[n] + 0.5]
|
||||
rows.append(dict(budget_km=round(B, 1), moved_max_km=round(float(np.max(np.linalg.norm(Q - M, axis=1))), 1),
|
||||
pos=[[round(c, 3) for c in inverse(m, *q)] for q in Q], inconsistent=bad))
|
||||
out["fits"][src][m] = dict(
|
||||
sites=used, routes=len(best),
|
||||
min_correction_km={"fibre": round(Dstar, 1), "vacuum": round(Dvac, 1)},
|
||||
one_pair_bound_km={"fibre": lb, "vacuum": lbv},
|
||||
check_max_excess_km={"fibre": round(viol, 4), "vacuum": round(violv, 4)},
|
||||
moved_km=[round(float(x), 1) for x in np.linalg.norm(P - M, axis=1)],
|
||||
fitted=[[round(c, 3) for c in inverse(m, *q)] for q in P],
|
||||
budgets=rows)
|
||||
r0 = rows[0]
|
||||
print(f"{src:4s} {m:9s} routes {len(best):3d} D* fibre {Dstar:7.1f} km (one pair {lb['km']:7.1f}: {sites[lb['pair'][0]][0]}-{sites[lb['pair'][1]][0]})"
|
||||
f" vacuum {Dvac:7.1f} km | inconsistent at B=0: {len(r0['inconsistent'])}, " +
|
||||
", ".join(f"B={r['budget_km']:.0f}:{len(r['inconsistent'])}" for r in rows[1:]) + f" | max excess {viol:.4f}")
|
||||
json.dump(out, open(os.path.join(HERE, "data/flatfit.json"), "w"), separators=(",", ":"), ensure_ascii=False)
|
||||
+119
@@ -0,0 +1,119 @@
|
||||
"""Live latency grid via the free Globalping API (https://globalping.io).
|
||||
|
||||
Picks one probe per source city, then makes those *same* probes ping a RIPE
|
||||
Atlas anchor in every target city (anchors are servers with published,
|
||||
host-verified locations that are required to answer ping).
|
||||
|
||||
python3 measure.py data/live_<timestamp>.json
|
||||
|
||||
Anonymous Globalping allows 250 probe-tests per hour; this grid uses 240.
|
||||
"""
|
||||
import json, sys, time, urllib.error, urllib.request
|
||||
|
||||
API = "https://api.globalping.io/v1"
|
||||
PACKETS = 16
|
||||
|
||||
# (city, country, use datacenter probe?)
|
||||
SOURCES = [
|
||||
("Sydney", "AU", True), ("Melbourne", "AU", True), ("Perth", "AU", False),
|
||||
("Brisbane", "AU", True), ("Auckland", "NZ", True), ("Christchurch", "NZ", True),
|
||||
("Santiago", "CL", True), ("Buenos Aires", "AR", True), ("Sao Paulo", "BR", True),
|
||||
("Johannesburg", "ZA", True), ("Cape Town", "ZA", True), ("Luanda", "AO", True),
|
||||
("Jakarta", "ID", True), ("Los Angeles", "US", True), ("Seoul", "KR", True),
|
||||
]
|
||||
|
||||
# RIPE Atlas anchors: (city, ip, fqdn, lat, lon)
|
||||
TARGETS = [
|
||||
("Sydney", "114.31.201.91", "au-syd-as4826", -33.869, 151.209),
|
||||
("Melbourne", "49.255.112.151", "au-mel-as4826", -37.818, 144.957),
|
||||
("Perth", "114.31.207.7", "au-ept-as4826", -31.962, 115.876),
|
||||
("Brisbane", "49.255.158.255", "au-bne-as4826", -27.466, 153.028),
|
||||
("Auckland", "202.46.184.4", "nz-akl-as38064", -36.849, 174.765),
|
||||
("Nouméa", "103.2.186.195", "nc-nou-as45345", -22.269, 166.461),
|
||||
("Santiago", "170.247.95.81", "cl-scl-as64112", -33.418, -70.599),
|
||||
("Buenos Aires", "170.210.5.200", "ar-bue-as4270", -34.613, -58.371),
|
||||
("São Paulo", "200.160.6.19", "br-sao-as22548", -23.645, -46.731),
|
||||
("Fortaleza", "170.238.235.214", "br-for-as37468", -3.735, -38.462),
|
||||
("Luanda", "102.130.66.11", "ao-lad-as37468", -8.915, 13.181),
|
||||
("Johannesburg", "102.130.68.151", "za-jnb-as37468", -26.138, 28.198),
|
||||
("Cape Town", "197.155.3.27", "za-cpt-as37199", -33.924, 18.414),
|
||||
("Jakarta", "203.119.52.122", "id-jkt-as4622", -6.239, 106.824),
|
||||
("Los Angeles", "64.71.131.76", "us-lax-as6939", 33.926, -118.394),
|
||||
("Seoul", "63.222.106.8", "kr-sel-as3491", 37.5, 127.037),
|
||||
]
|
||||
|
||||
|
||||
# sites with our own servers but no RIPE anchor in that city: (name, lat, lon)
|
||||
EXTRA_SITES = [("Honolulu", 21.31, -157.86)]
|
||||
# routed but not drawn on the page: the RIPE anchor the Michigan home connection is pinned to
|
||||
ROUTE_ONLY_SITES = [("Southfield, MI (home reference)", 42.472, -83.238)]
|
||||
# anchors near the Michigan home connection; the nearest by ping becomes its position
|
||||
HOME_NEAR = [("us-det-as215129", "23.135.52.20"), ("us-sfj-as36444", "208.86.250.253"), ("us-sfj-as267", "23.138.112.22"),
|
||||
("us-chi-as20473", "66.42.119.57"), ("us-chi-as12008", "156.154.39.254"), ("ca-tor-as20473", "149.248.50.86"),
|
||||
("ca-wtl-as4508", "155.254.2.42")]
|
||||
|
||||
|
||||
def call(path, body=None):
|
||||
req = urllib.request.Request(API + path, method="POST" if body else "GET",
|
||||
data=json.dumps(body).encode() if body else None,
|
||||
headers={"content-type": "application/json",
|
||||
"user-agent": "globe-latency-test/1.0"})
|
||||
with urllib.request.urlopen(req, timeout=60) as r:
|
||||
return json.load(r), dict(r.headers)
|
||||
|
||||
|
||||
def run(target_ip, locations):
|
||||
body = {"type": "ping", "target": target_ip, "locations": locations,
|
||||
"measurementOptions": {"packets": PACKETS}}
|
||||
while True:
|
||||
try:
|
||||
created, hdr = call("/measurements", body)
|
||||
break
|
||||
except urllib.error.HTTPError as e:
|
||||
if e.code != 429:
|
||||
raise
|
||||
wait = int(e.headers.get("X-RateLimit-Reset") or e.headers.get("Retry-After") or 300) + 5
|
||||
print(f" rate limited, waiting {wait}s", flush=True)
|
||||
time.sleep(wait)
|
||||
print(f" {target_ip:16s} id={created['id']} probes={created['probesCount']} "
|
||||
f"rate-remaining={hdr.get('X-RateLimit-Remaining') or hdr.get('x-ratelimit-remaining')}", flush=True)
|
||||
while True:
|
||||
time.sleep(1.0)
|
||||
m, _ = call(f"/measurements/{created['id']}")
|
||||
if m["status"] != "in-progress":
|
||||
return m
|
||||
|
||||
|
||||
def main(out):
|
||||
locs = []
|
||||
for city, cc, dc in SOURCES:
|
||||
loc = {"city": city, "country": cc, "limit": 1}
|
||||
if dc:
|
||||
loc["tags"] = ["datacenter-network"]
|
||||
locs.append(loc)
|
||||
|
||||
started = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
|
||||
first = run(TARGETS[0][1], locs)
|
||||
measurements = [(TARGETS[0], first)]
|
||||
for t in TARGETS[1:]:
|
||||
measurements.append((t, run(t[1], first["id"])))
|
||||
|
||||
cells = []
|
||||
for (city, ip, fqdn, lat, lon), m in measurements:
|
||||
for r in m["results"]:
|
||||
p, res = r["probe"], r["result"]
|
||||
st = res.get("stats") or {}
|
||||
cells.append(dict(
|
||||
src_city=p["city"], src_country=p["country"], src_lat=p["latitude"], src_lon=p["longitude"],
|
||||
src_asn=p["asn"], src_network=p["network"],
|
||||
dst_city=city, dst_anchor=fqdn, dst_ip=ip, dst_lat=lat, dst_lon=lon,
|
||||
status=res["status"], min=st.get("min"), avg=st.get("avg"), max=st.get("max"),
|
||||
rcv=st.get("rcv"), loss=st.get("loss"), measurement=m["id"]))
|
||||
json.dump(dict(started=started, packets=PACKETS, cells=cells,
|
||||
raw=[m for _, m in measurements]), open(out, "w"), indent=1)
|
||||
ok = sum(c["min"] is not None for c in cells)
|
||||
print(f"saved {out}: {ok}/{len(cells)} cells with replies")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main(sys.argv[1])
|
||||
@@ -0,0 +1,84 @@
|
||||
"""Distance models for the latency test.
|
||||
|
||||
Every model returns the shortest possible path length (km) between two
|
||||
lat/lon points *within that model*. On a flat map that is the straight line
|
||||
across the plane: a cable can bend, detour or loop, but it can never be
|
||||
shorter than the straight line, so these are hard lower bounds.
|
||||
|
||||
Scale conventions (the ones flat-earth maps themselves use):
|
||||
globe sphere, mean radius 6371.0 km, great-circle distance
|
||||
ae azimuthal equidistant centred on the North Pole (the "Gleason"
|
||||
map). Pole-to-anywhere distances are true, so 1 degree of
|
||||
latitude = 111.2 km everywhere, equator 10,008 km from the pole.
|
||||
dualpole azimuthal equidistant centred on 0N 0E (both poles are points,
|
||||
10,008 km above/below the centre). Distances from 0,0 are true.
|
||||
mercator flat Mercator rectangle, true scale on the equator, cut along
|
||||
the antimeridian (180E/W) like every wall map.
|
||||
"""
|
||||
import math
|
||||
|
||||
R = 6371.0
|
||||
C_VACUUM = 299_792.458 # km/s
|
||||
N_FIBER = 1.4682 # group index, standard single-mode fibre @1550nm
|
||||
C_FIBER = C_VACUUM / N_FIBER # ~204,190 km/s
|
||||
|
||||
MODELS = ["globe", "ae", "dualpole", "mercator"]
|
||||
|
||||
|
||||
def globe(lat1, lon1, lat2, lon2):
|
||||
p1, p2 = math.radians(lat1), math.radians(lat2)
|
||||
dp, dl = p2 - p1, math.radians(lon2 - lon1)
|
||||
a = math.sin(dp / 2) ** 2 + math.cos(p1) * math.cos(p2) * math.sin(dl / 2) ** 2
|
||||
return 2 * R * math.asin(min(1.0, math.sqrt(a)))
|
||||
|
||||
|
||||
def ae_xy(lat, lon):
|
||||
r = R * math.radians(90 - lat)
|
||||
t = math.radians(lon)
|
||||
return r * math.sin(t), -r * math.cos(t)
|
||||
|
||||
|
||||
def dualpole_xy(lat, lon, lon0=0.0):
|
||||
p, l = math.radians(lat), math.radians(lon - lon0)
|
||||
cosc = max(-1.0, min(1.0, math.cos(p) * math.cos(l)))
|
||||
c = math.acos(cosc)
|
||||
k = 1.0 if c < 1e-9 else c / math.sin(c)
|
||||
return R * k * math.cos(p) * math.sin(l), R * k * math.sin(p)
|
||||
|
||||
|
||||
def mercator_xy(lat, lon, cut=180.0):
|
||||
lat = max(-85.0, min(85.0, lat))
|
||||
x = R * math.radians((lon - cut) % 360.0)
|
||||
y = R * math.log(math.tan(math.pi / 4 + math.radians(lat) / 2))
|
||||
return x, y
|
||||
|
||||
|
||||
def _plane(f, a, b, **kw):
|
||||
x1, y1 = f(*a, **kw)
|
||||
x2, y2 = f(*b, **kw)
|
||||
return math.hypot(x2 - x1, y2 - y1)
|
||||
|
||||
|
||||
def distance(model, a, b):
|
||||
"""a, b = (lat, lon). Returns km."""
|
||||
if model == "globe":
|
||||
return globe(*a, *b)
|
||||
if model == "ae":
|
||||
return _plane(ae_xy, a, b)
|
||||
if model == "dualpole":
|
||||
return _plane(dualpole_xy, a, b)
|
||||
if model == "mercator":
|
||||
return _plane(mercator_xy, a, b)
|
||||
raise ValueError(model)
|
||||
|
||||
|
||||
def floor_ms(km, speed=C_FIBER):
|
||||
"""Minimum possible round-trip time in ms for a path of `km` each way."""
|
||||
return 2 * km / speed * 1000
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
syd, akl, la, sel = (-33.87, 151.21), (-36.85, 174.76), (34.05, -118.24), (37.57, 126.98)
|
||||
for name, a, b in [("SYD-AKL", syd, akl), ("SYD-LAX", syd, la), ("SEL-SYD", sel, syd)]:
|
||||
row = [f"{m}={distance(m, a, b):8.0f}km/{floor_ms(distance(m, a, b)):6.1f}ms" for m in MODELS]
|
||||
print(name, *row)
|
||||
+245
@@ -0,0 +1,245 @@
|
||||
"""Route every measured pair over the real cable network, on every map.
|
||||
|
||||
Graph:
|
||||
cable edges TeleGeography's drawn route of every cable in service,
|
||||
waypoint to waypoint (same lat/lon waypoints on every map)
|
||||
landing links landing point -> nearest waypoint of each cable that lands there
|
||||
land edges straight line between any two nodes (landing points, cities)
|
||||
on the same landmass (110m land polygons; islands too small
|
||||
for that file are grouped within 50 km)
|
||||
|
||||
Each map measures every edge in its own geometry (great circle on the globe,
|
||||
straight line on a flat map), so each map gets its own shortest route.
|
||||
|
||||
python3 network.py -> data/network.json
|
||||
"""
|
||||
import glob, json, math
|
||||
from collections import defaultdict
|
||||
import numpy as np
|
||||
from matplotlib.path import Path
|
||||
from scipy.sparse import coo_matrix
|
||||
from scipy.sparse.csgraph import dijkstra
|
||||
from models import R, MODELS, ae_xy, dualpole_xy, mercator_xy, C_FIBER
|
||||
from build import land
|
||||
from measure import TARGETS, EXTRA_SITES, ROUTE_ONLY_SITES
|
||||
|
||||
TG = "raw/tg"
|
||||
|
||||
|
||||
def lonw(x):
|
||||
return ((x + 180) % 360) - 180
|
||||
|
||||
|
||||
# ---------- nodes ----------
|
||||
nodes, key = [], {}
|
||||
|
||||
|
||||
def node(lon, lat, kind, label=None):
|
||||
lo = round(lonw(lon), 2)
|
||||
lo = lo - 360 if lo >= 180 else lo # date-line seam: +180 and -180 are one point
|
||||
k = (lo, round(lat, 2), kind if kind == "city" else "")
|
||||
if kind == "city":
|
||||
k = (k[0], k[1], label)
|
||||
if k not in key:
|
||||
key[k] = len(nodes)
|
||||
nodes.append(dict(lon=k[0], lat=k[1], kind=kind, label=label))
|
||||
elif kind == "landing" and nodes[key[k]]["kind"] == "v":
|
||||
nodes[key[k]].update(kind="landing", label=label) # waypoint that is also a landing point
|
||||
return key[k]
|
||||
|
||||
|
||||
meta = {}
|
||||
for f in glob.glob(f"{TG}/cables/*.json"):
|
||||
c = json.load(open(f))
|
||||
meta[c["id"]] = c
|
||||
lp = {f["properties"]["id"]: f["geometry"]["coordinates"] for f in json.load(open(f"{TG}/landing-point-geo.json"))["features"]}
|
||||
|
||||
cable_names, cable_edges = [], {}
|
||||
edges = [] # (i, j, kind, cable)
|
||||
by_cable_vertices = defaultdict(set)
|
||||
for f in json.load(open(f"{TG}/cable-geo.json"))["features"]:
|
||||
cid = f["properties"]["id"]
|
||||
c = meta.get(cid)
|
||||
if not c or c.get("is_planned") or (c.get("rfs_year") or 0) > 2026:
|
||||
continue
|
||||
if cid not in cable_names:
|
||||
cable_names.append(cid)
|
||||
ci = cable_names.index(cid)
|
||||
for line in f["geometry"]["coordinates"]:
|
||||
ids = [node(p[0], p[1], "v") for p in line]
|
||||
for a, b in zip(ids, ids[1:]):
|
||||
if a != b:
|
||||
edges.append((a, b, "cable", ci))
|
||||
by_cable_vertices[cid].update(ids)
|
||||
|
||||
landing_nodes = {}
|
||||
for cid in cable_names:
|
||||
verts = list(by_cable_vertices[cid])
|
||||
vx = np.array([[nodes[v]["lon"], nodes[v]["lat"]] for v in verts])
|
||||
for p in meta[cid]["landing_points"]:
|
||||
if p["id"] not in lp:
|
||||
continue
|
||||
lon, lat = lp[p["id"]]
|
||||
li = landing_nodes.get(p["id"])
|
||||
if li is None:
|
||||
li = landing_nodes[p["id"]] = node(lon, lat, "landing", p["name"])
|
||||
d = (vx[:, 0] - lon) ** 2 + (vx[:, 1] - lat) ** 2
|
||||
j = verts[int(np.argmin(d))]
|
||||
if j != li:
|
||||
edges.append((li, j, "link", cable_names.index(cid)))
|
||||
|
||||
# cities: live anchors + WonderNetwork servers
|
||||
live_city = {t[0]: node(t[4], t[3], "city", "L:" + t[0]) for t in TARGETS}
|
||||
for name, la, lo in EXTRA_SITES + ROUTE_ONLY_SITES: # Honolulu (our server, no anchor) and the home reference
|
||||
live_city[name] = node(lo, la, "city", "L:" + name)
|
||||
wn = json.load(open("data/wn_clean.json"))
|
||||
wn_ids = sorted(wn["servers"], key=int)
|
||||
wn_city = {s: node(wn["servers"][s]["lon"], wn["servers"][s]["lat"], "city", "W:" + s) for s in wn_ids}
|
||||
|
||||
# ---------- landmasses ----------
|
||||
paths = []
|
||||
for poly in land():
|
||||
ring = poly[0]
|
||||
if min(p[1] for p in ring) < -60:
|
||||
continue # Antarctica: no cables land there
|
||||
xs, out, off = [], [], 0.0
|
||||
prev = None
|
||||
for lon, lat in ring:
|
||||
if prev is not None and abs(lon + off - prev) > 180:
|
||||
off += -360 if lon + off - prev > 180 else 360
|
||||
prev = lon + off
|
||||
out.append((lon + off, lat))
|
||||
paths.append(Path(np.array(out)))
|
||||
|
||||
N = len(nodes)
|
||||
anchor_nodes = [i for i, n in enumerate(nodes) if n["kind"] in ("landing", "city")]
|
||||
pts = np.array([[nodes[i]["lon"], nodes[i]["lat"]] for i in anchor_nodes])
|
||||
mass = np.full(len(anchor_nodes), -1)
|
||||
for pi, p in enumerate(paths):
|
||||
for shift in (0, 360, -360):
|
||||
hit = p.contains_points(pts + [shift, 0]) & (mass < 0)
|
||||
mass[hit] = pi
|
||||
for r in (0.3, 0.7, 1.2): # coastal points just outside the coarse outline
|
||||
for ang in range(0, 360, 45):
|
||||
dx, dy = r * math.cos(math.radians(ang)), r * math.sin(math.radians(ang))
|
||||
for pi, p in enumerate(paths):
|
||||
for shift in (0, 360, -360):
|
||||
hit = p.contains_points(pts + [dx + shift, dy]) & (mass < 0)
|
||||
mass[hit] = pi
|
||||
# remaining points: cluster within 50 km
|
||||
parent = list(range(len(anchor_nodes)))
|
||||
|
||||
|
||||
def find(x):
|
||||
while parent[x] != x:
|
||||
parent[x] = parent[parent[x]]
|
||||
x = parent[x]
|
||||
return x
|
||||
|
||||
|
||||
def gdist(lat1, lon1, lat2, lon2):
|
||||
p1, p2 = np.radians(lat1), np.radians(lat2)
|
||||
a = np.sin((p2 - p1) / 2) ** 2 + np.cos(p1) * np.cos(p2) * np.sin(np.radians(lon2 - lon1) / 2) ** 2
|
||||
return 2 * R * np.arcsin(np.minimum(1, np.sqrt(a)))
|
||||
|
||||
|
||||
iso = np.where(mass < 0)[0]
|
||||
for a in iso:
|
||||
d = gdist(pts[a, 1], pts[a, 0], pts[iso, 1], pts[iso, 0])
|
||||
for b in iso[d < 50]:
|
||||
parent[find(a)] = find(b)
|
||||
for a in iso:
|
||||
mass[a] = 10000 + find(a)
|
||||
|
||||
groups = defaultdict(list)
|
||||
for k, m in enumerate(mass):
|
||||
groups[int(m)].append(anchor_nodes[k])
|
||||
for g in groups.values():
|
||||
for x in range(len(g)):
|
||||
for y in range(x + 1, len(g)):
|
||||
edges.append((g[x], g[y], "land", -1))
|
||||
print(f"nodes {N}, edges {len(edges)}, cables {len(cable_names)}, landmasses {len(groups)}", flush=True)
|
||||
|
||||
# ---------- weights per map ----------
|
||||
lat = np.array([n["lat"] for n in nodes])
|
||||
lon = np.array([n["lon"] for n in nodes])
|
||||
E = np.array([(a, b) for a, b, _, _ in edges])
|
||||
xy = {"ae": np.array([ae_xy(a, b) for a, b in zip(lat, lon)]),
|
||||
"dualpole": np.array([dualpole_xy(a, b) for a, b in zip(lat, lon)]),
|
||||
"mercator": np.array([mercator_xy(a, b) for a, b in zip(lat, lon)])}
|
||||
W = {"globe": gdist(lat[E[:, 0]], lon[E[:, 0]], lat[E[:, 1]], lon[E[:, 1]])}
|
||||
for m in ("ae", "dualpole", "mercator"):
|
||||
W[m] = np.hypot(*(xy[m][E[:, 0]] - xy[m][E[:, 1]]).T)
|
||||
kind = {}
|
||||
for (a, b, k, c) in edges:
|
||||
kk = (min(a, b), max(a, b))
|
||||
if kk not in kind or k == "cable":
|
||||
kind[kk] = (k, c)
|
||||
|
||||
|
||||
def graph(w):
|
||||
i, j = np.minimum(E[:, 0], E[:, 1]), np.maximum(E[:, 0], E[:, 1])
|
||||
order = np.lexsort((w, j, i))
|
||||
i, j, w = i[order], j[order], w[order]
|
||||
first = np.ones(len(i), bool)
|
||||
first[1:] = (i[1:] != i[:-1]) | (j[1:] != j[:-1])
|
||||
w = np.maximum(w[first], 1e-6)
|
||||
return coo_matrix((w, (i[first], j[first])), shape=(N, N)).tocsr()
|
||||
|
||||
|
||||
G = {m: graph(W[m]) for m in MODELS}
|
||||
|
||||
def main():
|
||||
# ---------- live pairs: lengths + paths ----------
|
||||
live_names = [t[0] for t in TARGETS] + [e[0] for e in EXTRA_SITES] + [e[0] for e in ROUTE_ONLY_SITES]
|
||||
live_src = [live_city[n] for n in live_names]
|
||||
live = {}
|
||||
for m in MODELS:
|
||||
dist, pred = dijkstra(G[m], directed=False, indices=live_src, return_predecessors=True)
|
||||
for a in range(len(live_names)):
|
||||
for b in range(a + 1, len(live_names)):
|
||||
t = live_src[b]
|
||||
seq = [t]
|
||||
while seq[-1] != live_src[a] and pred[a, seq[-1]] >= 0:
|
||||
seq.append(pred[a, seq[-1]])
|
||||
seq.reverse()
|
||||
via, kinds, land_km = [], "", 0.0
|
||||
for u, v in zip(seq, seq[1:]):
|
||||
k, c = kind.get((min(u, v), max(u, v)), ("land", -1))
|
||||
name = meta[cable_names[c]]["name"] if k in ("cable", "link") and c >= 0 else "land"
|
||||
kinds += {"cable": "c", "link": "k", "land": "l"}[k]
|
||||
if k == "land":
|
||||
land_km += float(G[m][min(u, v), max(u, v)])
|
||||
if not via or via[-1] != name:
|
||||
via.append(name)
|
||||
live.setdefault(f"{a}-{b}", {})[m] = dict(
|
||||
km=round(float(dist[a, t]), 1), land=round(land_km, 1), kinds=kinds,
|
||||
path=[[round(nodes[s]["lon"], 2), round(nodes[s]["lat"], 2)] for s in seq],
|
||||
via=[v for v in via if v != "land"])
|
||||
|
||||
# ---------- WonderNetwork pairs: lengths ----------
|
||||
src = [wn_city[s] for s in wn_ids]
|
||||
col = {s: i for i, s in enumerate(wn_ids)}
|
||||
wn_km = {}
|
||||
for m in MODELS:
|
||||
dist = dijkstra(G[m], directed=False, indices=src)
|
||||
wn_km[m] = [round(float(dist[col[r["a"]], wn_city[r["b"]]]), 1) for r in wn["pairs"]]
|
||||
|
||||
# globe sanity: a measurement faster than light along the globe's own best route means the
|
||||
# cable list is missing a path for that pair; that pair is set aside for every map
|
||||
slow = lambda km, t: t < 2 * km / C_FIBER * 1000
|
||||
wn_gap = [i for i, r in enumerate(wn["pairs"]) if slow(wn_km["globe"][i] - 200, r["rtt"] + 1)]
|
||||
print(f"WN pairs faster than the globe's cable route (network gaps): {len(wn_gap)} of {len(wn['pairs'])}")
|
||||
for i in wn_gap[:15]:
|
||||
r = wn["pairs"][i]
|
||||
print(f" {wn['servers'][r['a']]['name']:16s} {wn['servers'][r['b']]['name']:16s} rtt {r['rtt']:6.1f} globe route {wn_km['globe'][i]:7.0f} km -> {2*wn_km['globe'][i]/C_FIBER*1000:6.1f} ms")
|
||||
for m in MODELS:
|
||||
bad = sum(1 for i, r in enumerate(wn["pairs"]) if i not in set(wn_gap) and slow(wn_km[m][i] - 200, r["rtt"] + 1))
|
||||
print(f" {m:9s} WN too fast along cables: {bad}")
|
||||
links = [float(G["globe"][min(u, v), max(u, v)]) for (u, v, k, c) in edges if k == "link"]
|
||||
print(f"landing links: {len(links)}, over 50 km: {sum(l > 50 for l in links)}, longest {max(links):.0f} km")
|
||||
json.dump(dict(live=live, wn_km=wn_km, wn_gap=wn_gap), open("data/network.json", "w"), separators=(",", ":"))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
+180
@@ -0,0 +1,180 @@
|
||||
"""A map drawn from the pings alone.
|
||||
|
||||
Input: WonderNetwork's 2020 archive, every server (including the six whose
|
||||
listed location is wrong) and the fastest round trip of every pair. Each round
|
||||
trip becomes a fibre distance d = v_fibre * RTT / 2; no positions are used in
|
||||
the fit.
|
||||
|
||||
sphere points on a sphere of radius rho (fitted), great-circle distances
|
||||
plane points on a flat plane, straight-line distances
|
||||
Both minimise Sammon stress, sum((fit - d)^2 / d) / sum(d), from data-only
|
||||
starting points (classical multidimensional scaling for the plane, seeded random
|
||||
starts for both). Internet routes are longer than the shortest path, so rho
|
||||
comes out larger than the Earth's radius by the typical route detour; the shape
|
||||
does not depend on it. A sweep of fixed radii, with the plane as the limit of an
|
||||
infinite radius, shows where the fit is best.
|
||||
|
||||
For display only, the sphere solution is rotated (and mirrored if that fits
|
||||
better) onto the listed server locations; a rotation cannot change the shape.
|
||||
The angular error of each server after that rotation is reported.
|
||||
|
||||
python3 pingmap.py -> data/pingmap.json
|
||||
"""
|
||||
import json, math, os
|
||||
import numpy as np
|
||||
from scipy.optimize import least_squares
|
||||
from scipy.sparse import coo_matrix
|
||||
from models import R, C_FIBER
|
||||
|
||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||
W = json.load(open(os.path.join(HERE, "data/wn_pairs_all.json")))
|
||||
ids = sorted(W["servers"], key=int)
|
||||
_mis = {(m["name"], m["country"]) for m in json.load(open(os.path.join(HERE, "data/wn_clean.json")))["mislocated"]}
|
||||
mis = {s for s in ids if (W["servers"][s]["name"], W["servers"][s]["country"]) in _mis}
|
||||
col = {s: i for i, s in enumerate(ids)}
|
||||
n = len(ids)
|
||||
pr = [(col[p["a"]], col[p["b"]], p["rtt_min"]) for p in W["pairs"] if p["a"] in col and p["b"] in col and p["rtt_min"] > 0]
|
||||
I = np.array([p[0] for p in pr]); J = np.array([p[1] for p in pr])
|
||||
d = np.maximum(np.array([p[2] for p in pr]) * C_FIBER / 2000, 1.0)
|
||||
sw = 1 / np.sqrt(np.maximum(d, 100.0)) # Sammon weights, floored for same-city pairs
|
||||
rows = np.arange(len(pr))
|
||||
stress = lambda fit: float(np.sum((fit - d) ** 2 / np.maximum(d, 100.0)) / np.sum(d))
|
||||
|
||||
|
||||
# ---------- plane ----------
|
||||
def plane_res(x):
|
||||
P = x.reshape(n, 2)
|
||||
return sw * (np.linalg.norm(P[I] - P[J], axis=1) - d)
|
||||
|
||||
|
||||
def plane_jac(x):
|
||||
P = x.reshape(n, 2)
|
||||
v = P[I] - P[J]
|
||||
g = sw[:, None] * v / np.maximum(np.linalg.norm(v, axis=1), 1e-9)[:, None]
|
||||
r = np.repeat(rows, 4)
|
||||
c = np.stack([2 * I, 2 * I + 1, 2 * J, 2 * J + 1], 1).ravel()
|
||||
val = np.stack([g[:, 0], g[:, 1], -g[:, 0], -g[:, 1]], 1).ravel()
|
||||
return coo_matrix((val, (r, c)), shape=(len(pr), 2 * n)).tocsr()
|
||||
|
||||
|
||||
def plane_fit(x0):
|
||||
return least_squares(plane_res, x0, jac=plane_jac, method="trf", tr_solver="lsmr", x_scale="jac", max_nfev=400).x
|
||||
|
||||
|
||||
def classical_mds():
|
||||
D2 = np.full((n, n), np.nan)
|
||||
D2[I, J] = D2[J, I] = d ** 2
|
||||
D2[np.isnan(D2)] = np.nanmean(D2)
|
||||
np.fill_diagonal(D2, 0)
|
||||
Cn = np.eye(n) - 1 / n
|
||||
w, V = np.linalg.eigh(-0.5 * Cn @ D2 @ Cn)
|
||||
return (V[:, -2:] * np.sqrt(np.maximum(w[-2:], 0))).ravel()
|
||||
|
||||
|
||||
# ---------- sphere: params (lat, lon) radians per point, then log rho ----------
|
||||
def sph(x):
|
||||
th = x[:2 * n].reshape(n, 2)
|
||||
f1, f2, l1, l2 = th[I, 0], th[J, 0], th[I, 1], th[J, 1]
|
||||
s2l = np.sin((l2 - l1) / 2) ** 2
|
||||
h = np.clip(np.sin((f2 - f1) / 2) ** 2 + np.cos(f1) * np.cos(f2) * s2l, 1e-12, 1 - 1e-12)
|
||||
return f1, f2, l1, l2, s2l, h, 2 * np.arcsin(np.sqrt(h))
|
||||
|
||||
|
||||
def sphere_res(x, rho=None):
|
||||
*_, ang = sph(x)
|
||||
return sw * ((math.exp(x[-1]) if rho is None else rho) * ang - d)
|
||||
|
||||
|
||||
def sphere_jac(x, rho=None):
|
||||
f1, f2, l1, l2, s2l, h, ang = sph(x)
|
||||
r_ = math.exp(x[-1]) if rho is None else rho
|
||||
k = sw * r_ / np.sqrt(h * (1 - h))
|
||||
cc = np.cos(f1) * np.cos(f2)
|
||||
df1 = -0.5 * np.sin(f2 - f1) - np.sin(f1) * np.cos(f2) * s2l
|
||||
df2 = 0.5 * np.sin(f2 - f1) - np.cos(f1) * np.sin(f2) * s2l
|
||||
dl = 0.5 * cc * np.sin(l2 - l1)
|
||||
r = [rows] * 4
|
||||
c = [2 * I, 2 * J, 2 * I + 1, 2 * J + 1]
|
||||
v = [k * df1, k * df2, -k * dl, k * dl]
|
||||
m = 2 * n
|
||||
if rho is None:
|
||||
r.append(rows); c.append(np.full(len(pr), 2 * n)); v.append(sw * r_ * ang); m += 1
|
||||
return coo_matrix((np.concatenate(v), (np.concatenate(r), np.concatenate(c))), shape=(len(pr), m)).tocsr()
|
||||
|
||||
|
||||
def sphere_fit(x0, rho=None):
|
||||
if rho is None:
|
||||
return least_squares(sphere_res, x0, jac=sphere_jac, method="trf", tr_solver="lsmr", max_nfev=600).x
|
||||
f = least_squares(lambda y: sphere_res(np.append(y, 0), rho), x0[:2 * n], jac=lambda y: sphere_jac(np.append(y, 0), rho),
|
||||
method="trf", tr_solver="lsmr", max_nfev=400).x
|
||||
return np.append(f, math.log(rho))
|
||||
|
||||
|
||||
def unit(lat, lon):
|
||||
return np.stack([np.cos(lat) * np.cos(lon), np.cos(lat) * np.sin(lon), np.sin(lat)], 1)
|
||||
|
||||
|
||||
rng = np.random.default_rng(20261027)
|
||||
# plane: classical MDS start plus random starts
|
||||
cand = [plane_fit(classical_mds())] + [plane_fit(rng.normal(0, 6000, 2 * n)) for _ in range(5)]
|
||||
Pbest = min(cand, key=lambda x: stress(np.linalg.norm(x.reshape(n, 2)[I] - x.reshape(n, 2)[J], axis=1)))
|
||||
plane_fitd = np.linalg.norm(Pbest.reshape(n, 2)[I] - Pbest.reshape(n, 2)[J], axis=1)
|
||||
S_plane = stress(plane_fitd)
|
||||
# sphere: random starts, radius free
|
||||
starts = []
|
||||
for _ in range(8):
|
||||
u = rng.normal(size=(n, 3)); u /= np.linalg.norm(u, axis=1)[:, None]
|
||||
starts.append(np.concatenate([np.stack([np.arcsin(u[:, 2]), np.arctan2(u[:, 1], u[:, 0])], 1).ravel(), [math.log(12000.0)]]))
|
||||
fits = [sphere_fit(x) for x in starts]
|
||||
sres = [stress(math.exp(x[-1]) * sph(x)[-1]) for x in fits]
|
||||
X = fits[int(np.argmin(sres))]
|
||||
rho = math.exp(X[-1])
|
||||
S_sphere = min(sres)
|
||||
print(f"plane stress {S_plane:.4f} (starts: " + ", ".join(f"{stress(np.linalg.norm(c.reshape(n, 2)[I] - c.reshape(n, 2)[J], axis=1)):.4f}" for c in cand) + ")")
|
||||
print(f"sphere stress {S_sphere:.4f}, rho {rho:.0f} km (starts: " + ", ".join(f"{s:.4f}" for s in sres) + ")")
|
||||
|
||||
# radius sweep, warm-started from the free solution
|
||||
sweep = []
|
||||
for rr in [4000, 6000, 8000, 9000, 10000, 11000, 12000, 13000, 14000, 16000, 20000, 30000, 50000]:
|
||||
x = sphere_fit(X, rr)
|
||||
sweep.append([rr, round(stress(rr * sph(x)[-1]), 5)])
|
||||
print("sweep", sweep, "plane", round(S_plane, 5))
|
||||
|
||||
# display alignment: rotation (or rotation + mirror) of the fitted sphere onto listed locations
|
||||
th = X[:2 * n].reshape(n, 2)
|
||||
F = unit(th[:, 0], th[:, 1])
|
||||
lat = np.radians([W["servers"][s]["lat"] for s in ids]); lon = np.radians([W["servers"][s]["lon"] for s in ids])
|
||||
T = unit(lat, lon)
|
||||
ok = np.array([s not in mis for s in ids])
|
||||
best = None
|
||||
for mirror in (False, True):
|
||||
Fm = F * np.array([1, 1, -1 if mirror else 1])
|
||||
Uu, _, Vt = np.linalg.svd(Fm[ok].T @ T[ok])
|
||||
Q = Uu @ np.diag([1, 1, np.linalg.det(Uu @ Vt)]) @ Vt
|
||||
G = Fm @ Q
|
||||
err = np.degrees(np.arccos(np.clip(np.sum(G * T, 1), -1, 1)))
|
||||
if best is None or np.median(err[ok]) < best[2]:
|
||||
best = (mirror, G, float(np.median(err[ok])), err)
|
||||
mirror, G, med, err = best
|
||||
glat, glon = np.degrees(np.arcsin(G[:, 2])), np.degrees(np.arctan2(G[:, 1], G[:, 0]))
|
||||
print(f"aligned: mirror {mirror}, angular error median {med:.2f} deg ({med * math.pi / 180 * R:.0f} km), "
|
||||
f"90th {np.percentile(err[ok], 90):.2f} deg")
|
||||
relocated = []
|
||||
for s in sorted(mis, key=int):
|
||||
i = col[s]
|
||||
near = min((k for k in range(n) if ok[k]), key=lambda k: np.degrees(np.arccos(np.clip(G[i] @ T[k], -1, 1))))
|
||||
relocated.append(dict(server=f"wn:{s}", listed=f"{W['servers'][s]['name']}, {W['servers'][s]['country']}",
|
||||
nearest_listed_server=f"{W['servers'][ids[near]]['name']}, {W['servers'][ids[near]]['country']}",
|
||||
error_deg=round(float(err[i]), 1)))
|
||||
print(" mislocated", relocated[-1])
|
||||
sph_fitd = rho * sph(X)[-1]
|
||||
out = dict(method=__doc__.split("\n\n")[1].strip(), servers=[f"wn:{s}" for s in ids], pairs=len(pr),
|
||||
stress={"sphere": round(S_sphere, 5), "plane": round(S_plane, 5)}, rho_km=round(rho, 1),
|
||||
detour_factor=round(rho / R, 3), radius_sweep=sweep, mirrored=bool(mirror),
|
||||
angular_error_deg={"median": round(med, 2), "p90": round(float(np.percentile(err[ok], 90)), 2)},
|
||||
fitted=[[round(float(a), 2), round(float(b), 2)] for a, b in zip(glon, glat)],
|
||||
error_deg=[round(float(e), 2) for e in err], mislocated=relocated,
|
||||
plane=[[round(float(a), 1), round(float(b), 1)] for a, b in Pbest.reshape(n, 2)],
|
||||
shepard={"d": [round(float(x), 0) for x in d[::25]], "sphere": [round(float(x), 0) for x in sph_fitd[::25]],
|
||||
"plane": [round(float(x), 0) for x in plane_fitd[::25]]})
|
||||
json.dump(out, open(os.path.join(HERE, "data/pingmap.json"), "w"), separators=(",", ":"), ensure_ascii=False)
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
+117259
File diff suppressed because it is too large
Load Diff
Vendored
+2
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,3 @@
|
||||
211M28sEt4AAFj5rL00021N3y
|
||||
2wH1IzkoEM73rjNjM00021N3y
|
||||
24fbk4DoHPNK5HSsa00021N3y
|
||||
@@ -0,0 +1,716 @@
|
||||
68940196be34087ee628d7870e431701f3211aeb60e6995a33fb76ef71f89993 tg/cable-geo.json
|
||||
89105ce7712335562d4c5cc5bab1df48707f4c0486641f9967cf3fa45ddf3c75 tg/cables/2africa.json
|
||||
a6b2980cdd24fc5d30ff4fc6b564cccc9d3268bd89e34252a4927f379a3d0e57 tg/cables/5-villages-6-islands.json
|
||||
807fd98e82979fe25152b35d8532d3331ad8d7807850b010d03d39057fbb1de9 tg/cables/acs-alaska-oregon-network-akorn.json
|
||||
7df8c43490d4b43fd73c4ce3675c06cbe296de972106c48f41284113e050df02 tg/cables/adamasia-cable-system-1.json
|
||||
a13d40d3ff05d826a84dbe79574c0b9a80f63f8c132adf2730e9b107a660eccf tg/cables/aden-djibouti.json
|
||||
3d08e19302241e8eafaf346a2b2cab19dc932938674f47b365ec3a0a9c7a21c2 tg/cables/adria-1.json
|
||||
be9db6260c0e9451ee164172b7d2b8d7acedff7591a1c6353bc1ef6827ae6f0e tg/cables/aec-1.json
|
||||
8b89f8cd1ad5435dbb63de264e3c64f78cfd573c036ff470d7fe9588121249bd tg/cables/africa-1.json
|
||||
5cc189f071c108494b891c3a02dbab4a703c65fe03120df2698c33c8b36f9882 tg/cables/africa-coast-to-europe-ace.json
|
||||
8c9101a12ddc9c9359e3559b7049dbdd129ce675d8f8ea2e4a58359720e84b91 tg/cables/airraq.json
|
||||
b726d24ea1f4f6c6953b52961409f7446563223499ee656aeb3d1eea972b6e2b tg/cables/alaska-united-east-au-east.json
|
||||
d8d40ecf5014f62296b659986272b4e39efe5791fcbc5b3e2d6b49dc806cf659 tg/cables/alaska-united-southeast-au-se.json
|
||||
2e80269648a705bc769b95411e8e0ed7ca5df672a5fe6f75cd0826aec1273b7a tg/cables/alaska-united-turnagain-arm-auta.json
|
||||
458df2c3318e6be27f8cdf8b2bb78c2fc200daa6e3d4b0bd23435ca848f9a56c tg/cables/alaska-united-west-au-west.json
|
||||
0ed5ef1aab97ccd87e939cb53e599ea5fc8596753bfa4853160d8874bcc161ec tg/cables/alba-1.json
|
||||
801866b1e493512c2daa835a39b1ba15db3e7ce0e2dd71d30cc1726dd9b6a9bf tg/cables/aletar.json
|
||||
50aabd0ab23785170a7227574aacb1ef9e68dab1b5fc429761750973b2b66219 tg/cables/alisios.json
|
||||
59abac0c9f311db1309fd7963c943acd4e020b64eb7efbe76ea53b19d2de7a29 tg/cables/almera-melilla-alme.json
|
||||
f723da5b18eb9a1f228029a9b8d7fd2b03e75461a80c21b3f2ecf666893c72f7 tg/cables/alonso-de-ojeda.json
|
||||
17a005c76d6593cd32c60bb41f56b2315794e8dfdbf245f6b54e7b181493ab25 tg/cables/america-movil-submarine-cable-system-1-amx-1.json
|
||||
fd18509cfa50c7a28a1cd260b6324fd743ae8600d9bcccf052a7a08ec3ad2b4b tg/cables/american-1.json
|
||||
94fa04591c0a5bf4d7d9a077742f2f81751251273d49b9d17eebddb106f18e55 tg/cables/americas-ii-west.json
|
||||
7bf6bfb8fd2730b8112341092e65c07a012680ce547c54e025bfae731e5381d7 tg/cables/americas-i-north.json
|
||||
951d115bdd1316ea3bc12744e51e21a1976c83bc936b3b3501f5b2f11d6ede26 tg/cables/amerigo-vespucci.json
|
||||
a6b02b3a4151b28423af4bc1f134c85de0a47decbf2247c1f827f8a857a50981 tg/cables/amitie.json
|
||||
5b98c0e86be64fdb59c53b26971f005098a1c4967e5a905b15b86231a778cc8d tg/cables/andromeda.json
|
||||
10aa55fee25da35c71af1509cb5995e181c892893281658458e2c9f45ec8a7cd tg/cables/anjana.json
|
||||
d4e29abd6f0dddee17eecc1042ed1c16096e95bafdf91caba9e506a8fcd73f07 tg/cables/antigua-st-kitts.json
|
||||
8860192bf1d6a06d9a3b8db24d046604dbce69fc41e995982722471a67177c81 tg/cables/antillas-1.json
|
||||
c428842f87d2f9910eaf382e1ab15195d8e15235011c9585d276c02c3ade2bde tg/cables/apcn-2.json
|
||||
27b8221b1f4568a22c552a672fb3768d41d34c144050872fc29fbe6c26908ca9 tg/cables/apocs-1.json
|
||||
d1c91fe186d2fe1115b01ff05c57b4f30dd46cd27a9b3f1660c4e7eb251fae50 tg/cables/apocs-2.json
|
||||
9929534fe345c86d2818597c424a2b23ab0799bb7c8edfe8d4cf13f254cafcc2 tg/cables/apollo-east-and-west.json
|
||||
6f42ee43a33ce65a865fe3a16809d37e925fd107410cab217b0cfefe5f71790f tg/cables/apollo.json
|
||||
b2c2fc907e8188080fe5c5f946129a7c0385b00b3fcb9303b029e9fd6a191f59 tg/cables/apricot.json
|
||||
49c6fcab32f6c9eb2c64fe9747dd9b95e8c0bf44aa67e68170c0c4ceaf5f93f2 tg/cables/apx-east-2.json
|
||||
10be3fa2cbd97805be69742929975c3a52651f23fa386fe986d0c36cb2f29341 tg/cables/apx-east.json
|
||||
f3bd2a853907ba0f4f7422214a9455dc14f3aec7635de00aba4d2680f65022d8 tg/cables/apx-north.json
|
||||
d44e4157d97e9566fd32bf9ef72f197119654323df1e31c97570fc1ae0cea5e8 tg/cables/apx-west.json
|
||||
4e8a9017f240fe6b90071a15f44aeec972a486386cd0735bd57aa9be9cc69c78 tg/cables/aqualink.json
|
||||
10299a7c9d06a21ee135a63731e43032d4187d3d67cd530221aa556db47953b8 tg/cables/arcos.json
|
||||
aeaf270b41d31066efd792f7f78b5b5362064b839d75bdf2ebf8f988da35cdc4 tg/cables/arctic-way.json
|
||||
83e617d6f35fe0ec7b26382860630c33d42ce1a87f4176b6e8a9e9e8c868609c tg/cables/arimao.json
|
||||
60bd15ba31360642aaba5661f2d83d411bac3608ddf2f557d401dec9af26862d tg/cables/arsat-submarine-fiber-optic-cable.json
|
||||
18bb562cbbe26bdcf2100f982a307159e7b9d1b4b1381e99cad1b0370d10eded tg/cables/asia-africa-europe-1-aae-1.json
|
||||
577dca21e10eadfe1d9a34c8e83961df48277afdce9f1bee618b3518d24cf4cc tg/cables/asia-america-gateway-aag-cable-system.json
|
||||
1ac58db7e26dc93c7384cee2880c29948d9b1b9db4dbeef4b98da6c6b2ca6bec tg/cables/asia-connect-cable-1-acc-1.json
|
||||
17389a449de7836b243a84a20bcb529e866965cc4a353c23531adc32b85e83ed tg/cables/asia-direct-cable-adc.json
|
||||
d3f6db6b52b95ae77fad6efab0b8b2df86f6d709fdad9e6064502cba408e69cc tg/cables/asia-link-cable-alc.json
|
||||
e09c6bec1d20fd8c4baa6cce9fdd0ea13d28f2ac6b32f91c321ca3e42abf9fa1 tg/cables/asia-pacific-gateway-apg.json
|
||||
d9da171a116f595eb6acfbc968935666fcf95bcd14ae397c3cb72e6dc09ec4ef tg/cables/asia-submarine-cable-express-asecahaya-malaysia.json
|
||||
8d77edee99f77490cfc9d0df3610e48c6da1c4c51c63fcd39959bb8a4aac7b88 tg/cables/asia-united-gateway-east-aug-east.json
|
||||
f6ac721a73660f7e6fa20b54b44de2fa3655efe6cc78008efb963f0699a55158 tg/cables/atisa.json
|
||||
8c366979e7fca87d0640b0e8c111ddc26fd8ed24fdee9cf71199aba4458701db tg/cables/atlantic-crossing-1-ac-1.json
|
||||
722dca9ade2e767c12574c5d975c268882df9eb527af444ec8aa0099229e2d89 tg/cables/atlas-offshore.json
|
||||
a974cb65a7ceab887234f98896047b16708fb1a82500f6202487d156b72bf237 tg/cables/au-aleutian.json
|
||||
e3ccf2aae2112b0cd6b10a87f8821698dac2febaec7c4a61ee319aa1447684e4 tg/cables/aurora.json
|
||||
33769bd8ed46c121bc08c36978d878e395cd8a0fd01de11090b63f340c1af68c tg/cables/australia-japan-cable-ajc.json
|
||||
e4dc87147b66f232a32d4d4aab9859a25488bf807fbb26c58c1ef4ef4b80f92a tg/cables/australia-singapore-cable-asc.json
|
||||
74f9d034581073ce3cede98198a9ae6a89d358a82ab747830bad404eb3474833 tg/cables/auur.json
|
||||
512f45c0924c909b4a91702b06d7e4cee44fb3b80c53bf0e95492f21a374dcf1 tg/cables/avassa.json
|
||||
766627b74a33fbd34b49f5f7cec9aa03f98a70b3563246b2dd4fdb113bf15c7c tg/cables/awashima-murakami.json
|
||||
360e06b5039dcf7ee70b22647fcd182d8f197a3ad785f87dddcc7ffcf3dca440 tg/cables/azores-fiber-optic-system-afos.json
|
||||
2249ed3944a504efa7b8294314e3e07d74c876b73aab0dcdea57f604153f421d tg/cables/bahamas-2.json
|
||||
7527546144daccd09b0e0e6a631d45a2d16d0f82850e23341553b8f611fe35bf tg/cables/bahamas-domestic-submarine-network-bdsni.json
|
||||
0f132265a8dcbb4dd6b8fae4e9ca38933ff30486f52726517576097823130aa2 tg/cables/bahamas-internet-cable-system-bics.json
|
||||
20767ebaffd928eeec596156c3bb67d9159abc41e7bd26ead5ab8366cbe9e61a tg/cables/balalink.json
|
||||
2cff5ae041974b3606f1fa4fd0e8f071c020bd1a286d229d937abb8fc97fb7e6 tg/cables/balok.json
|
||||
220f6837933302de7daf5d5798dfeb6441b774823fab880fb1f611a2a0e1568d tg/cables/baltica.json
|
||||
659698733889ab7e9f6d986acab858408b5bf34d6434acd94c9d7b58404cf8ce tg/cables/baltic-sea-submarine-cable.json
|
||||
3b0e8d890312c2827cbd0b6c8c9d1f0e747dca87bde57971532d51010e8665d7 tg/cables/bangladesh-private-cable-system-bpcs.json
|
||||
eb3a3ae09752de54dcd5e5af648eefbe4ea23707a44db1754755cabcd12b56f3 tg/cables/barat-timur-indonesia-1-bti-1.json
|
||||
63e8eba03d9f37ab5e625cc9a7f50248db1b6fb4af1d35ad7cefb5d00ab46538 tg/cables/barat-timur-indonesia-2-bti-2.json
|
||||
417e5b79bcf6185937c7eded3cc6430ad305c30725bacc037f72f391c9cf9de7 tg/cables/barracuda.json
|
||||
52834993feea8e7ffe755cf77cd9627b8bf7af6214e79c7891c07a417e7c9f1b tg/cables/basslink.json
|
||||
0e23a01c84aa37737fbbaa9b6631c7ef74565261ec56ff2e441103dee1b055b6 tg/cables/bass-strait-1.json
|
||||
c605b619be44ee9f1996f8da8cbb48baf5f59b827ab1150d872ce7aff3839ff8 tg/cables/bass-strait-2.json
|
||||
ec9e17f3cdaccf3c822754d55d1388bda360f19c168ad2d67edd5e6329178a42 tg/cables/batam-dumai-melaka-bdm.json
|
||||
ea5b287d399c151b9a970a72bf27ccd355bb7ac01266d92c83d1c877ed090121 tg/cables/batam-rengit-cable-system-brcs.json
|
||||
edf7c2c03381d19f37c9acc0ec4d47cfe35d3f9c3f24407815b2713ef75efdb7 tg/cables/batam-sarawak-internet-cable-system-basics.json
|
||||
768951756c7b678ff16ca413d9f1f5f5b1c52bb59b69ecfc4e2cac4943eb46c7 tg/cables/batam-singapore-cable-system-bscs.json
|
||||
879cd72a0db66167b7a731a983a3c618ab55cb59bf91425f184745e136213863 tg/cables/bay-of-bengal-gateway-bbg.json
|
||||
c204cb09b5547624a75916704f886d584913c2082cac4a6ccd9176233982c09c tg/cables/bcs-east.json
|
||||
91a095662d65f4ac36014949f037dbbcfe9b887864f49180c1e705abaf8c0712 tg/cables/bcs-east-west-interlink.json
|
||||
8e8645453174a43d2301f6befd5ee31455fa8abe3b3c6b32cda922e08fe06f45 tg/cables/bcs-north---phase-1.json
|
||||
8c0876cd217d430b5d1132ae6132c8b84fd248f0149bc8d6246a4c62ef2ff954 tg/cables/bcs-north---phase-2.json
|
||||
23fc0c280af54177c9c16358bbbe2084d16a0762fc0ab87622d4785e2f36c565 tg/cables/beaufort.json
|
||||
b8c0d34e6470f595c31fbf810ef6a43b53a31fc4822295ab0fe5b0a93d2debc2 tg/cables/bernacchi-1.json
|
||||
601eff85938a3a395de2911b8feb878920ba32b65d1fd75dd308c850228e9091 tg/cables/berytar.json
|
||||
c7602d9a88e21466ab8409035889a5a337c8c35c14b7ee1b846ae7ddf1ef5b8c tg/cables/besut-perhentian-islands.json
|
||||
9c5a02e31912de04c39f288a40309fa64af044d4e92c664a05792c34386dd0d2 tg/cables/bharat-lanka-cable-system.json
|
||||
49b1c1074845d0361564ed700b57bdbff8dc38a5b434dbf566d3c46b14462161 tg/cables/bicentenario.json
|
||||
2c10c7c3f2733b80d37390a8072a3314775ec15bb642a5c32b46d82ffa1ba47d tg/cables/bifrost.json
|
||||
ab6f13556714e1d9a1c01016c5689edea94db740a3af968f394273e3bb4c94ad tg/cables/biznet-nusantara-cable-system-1-bncs-1.json
|
||||
5b4d9573080f08b96a85cd27fb6b94770ed8136a4f6619773b6d21e3ba264a0a tg/cables/blue.json
|
||||
8aa706fe60f8330440eb31c92ab1d25dfe00904aac34e8b614e0d7a6e3da9d17 tg/cables/bodo-rost-cable.json
|
||||
edfc1ae5899cf35134ccb0b5b9ef08aa30db13e9b41e3ed69f394d74f1af06cf tg/cables/boracay-palawan-submarine-cable-system-bpscs.json
|
||||
84bccd77615376fc512a91daf4b1e07b03c19a5755ba69487d2aaa664b0b6ff6 tg/cables/bosun.json
|
||||
7e8804a832c516f32166c6c73912a9025b257431df7d4810b6ba1d56ffadb374 tg/cables/botnia.json
|
||||
14ea4e92a398b894b859a756ee4158ff2b825af450fd7a913f8e3ffa436712bf tg/cables/brazilian-festoon.json
|
||||
271995d38c73b71b462dc8dc0caa1ef250df2b8f8107e23279de4d8df21d54e8 tg/cables/brusa.json
|
||||
f374818aee4d7d5385066f5d9a0dbb48d4a732b086701be589764af699905ccd tg/cables/bt-highlands-and-islands-submarine-cable-system.json
|
||||
b918cef983b5de2dd67023e1e8f987da528110682952e03e5f29d2e9f6e5a562 tg/cables/bt-mt-1.json
|
||||
37cab14ea5b67209c53246c581a83801f34966438f01eec8bb7df4f27dd78199 tg/cables/bugio.json
|
||||
53aab0142923a76f60cf90b152de6d1b5a91c923dba53e7f3a19757ec9c2ffb2 tg/cables/bulikula.json
|
||||
864d273e445c0675b52889ac25d6db936f17ca63b2b754317eb680e91d91cc10 tg/cables/cabo-verde-telecom-domestic-submarine-cable-phase-1.json
|
||||
34b8698c7b7c03e0a8c7c4e79d03b03e8959e308275f9511b5f45132b46ccfbc tg/cables/cabo-verde-telecom-domestic-submarine-cable-phase-2.json
|
||||
da60cf0a63e7889461ccbfb5d4e0d3ae52f98a1714afecc13575da5fcfc5b67b tg/cables/cabo-verde-telecom-domestic-submarine-cable-phase-3.json
|
||||
027956cda7657fe04444eec1f440677139439695ad206777aaa289f5d91c390d tg/cables/cadmos-2.json
|
||||
47e5b2483dc5ad9a07c0c375d27cc99b1a561c21db81b8729bf555a3fd7ced0b tg/cables/cadmos.json
|
||||
0f508638ed5a91a90dd9ca9f82764989b757bee49928275b98f1c55ea79d2abd tg/cables/calvi-st-florent.json
|
||||
8c192e758e801eec4e205ad70eb91f2afefdfa3f8f6c29a495ce9854ba0f7e91 tg/cables/cam-ring.json
|
||||
1f40877c7bdc290ae964a5634c015ce639b08b765b1505feb6edf7fad5ea2c67 tg/cables/canalink.json
|
||||
1957bd2a364f479a818269584ba0e21c5bae05ec5fdac73d04ee2528cd0a1373 tg/cables/candalta.json
|
||||
09bdcb9263b6688dcfe0497c74d8d6beed28a462700597743bcba37dcd97d40b tg/cables/candle.json
|
||||
7b5e0408d0261a137502f8b5777b704028070c5f2dfb36ec3aaa4ce1ce3bd95d tg/cables/canoa.json
|
||||
7c1835c48e878e5cbcacc8e7283959225630ee47a9e87d21f30603aadc052213 tg/cables/cantat-3.json
|
||||
b45e238844bfb918f79eec05891901f1b18fbc07402b102fb1d90472ade03501 tg/cables/caribbean-bermuda-u-s-cbus.json
|
||||
e14cbff7d46648c53b14f40c069488d5320b630fbb708014c34e4aa214cec0d0 tg/cables/caribbean-regional-communications-infrastructure-program-carcip.json
|
||||
aff858af9af46b05653af33fb6a8e296addf2d8b518f413a8f45501feb72ed90 tg/cables/carnival-submarine-network-1-csn-1.json
|
||||
c07ca6c6feb091b88e8fe9e858bc706b57b8192ef920e6a5232f6fe4ee6f4332 tg/cables/cat-submarine-network-csn.json
|
||||
2a72178fb9d5a84781e7682230e3f0ef2b107cd5503cf581b7da0b2804d670b3 tg/cables/caucasus-cable-system.json
|
||||
39784f8bc2b626d250f6be3e771492328d43045ef210e713c8a51e37920d8fe4 tg/cables/cayman-jamaica-fiber-system-cjfs.json
|
||||
0006bb78d333c40e9c885dcde457efd81085c3b570ee4ed3f956a36b0ffffef8 tg/cables/ceiba-1.json
|
||||
3e0e721280414e1a35380d8fdf0c1d66e86570366c1f0000b3b6b9eeef1ae258 tg/cables/ceiba-2.json
|
||||
dcf4653678bc677974e29ccd4366de3069a2a5a10f84167b22860e625d141416 tg/cables/celia.json
|
||||
d127df0662f4be90928b96b46f41796417ded118ed936ecbad0b1cd6ba076981 tg/cables/celtixconnect-1-cc-1.json
|
||||
ad09d30767a26b604a1bb4b53182e5321aed4d256b66573a76477fd60aaecf45 tg/cables/challenger-one-bermuda.json
|
||||
3dfe70b8522903c95a6273db6b712cd1d6fe5466e62b8071fd0e0796a2f8c27e tg/cables/channel-islands-9-liberty-submarine-cable.json
|
||||
7b0a7587479ae1e20a034f635a5290506f562c2a948d06c42b4bccaf395cbb8d tg/cables/chennai-andaman-nicobar-islands-cable-cani.json
|
||||
f05c6512811e872237ec0243704ffcc0aaaf2caab95fdb3c4f7de0e06a550e29 tg/cables/chi.json
|
||||
d76b2808fded45cb6e9a97f12c903ef296a33bf235e730f7146f95041c33b8f1 tg/cables/chuuk-pohnpei-cable.json
|
||||
8316b24d8205ec4b77ddf1f1f5a663549797d2f92a970037e0a59568b48527e6 tg/cables/circe-north.json
|
||||
69e3fe4b8282a896ac9b4175c36c5a9dc44e807893b40900ec6f192230145d96 tg/cables/circe-south.json
|
||||
2cb8ed7e92e4d62fcc7baea79fc88398520455f74e84aebe6fd65a42b640ffa7 tg/cables/c-lion1.json
|
||||
cd16b8b8145e77ece58674e66e4c70dc2e412ad9499aba0030193fcdba70fec4 tg/cables/cobracable.json
|
||||
35493668923bb2183e834baed4a6ae727423a462e6b79eff4b5defb9dc3aa651 tg/cables/cogim.json
|
||||
1d0808dc03f6b8febbd04a70f777a74ab74fce098bdc813bf99b92c77d07f0c4 tg/cables/colombia-florida-express-cfx-1.json
|
||||
38b0f393073ffa03588ef5432624db2a28fdbe252b0c03ec942146f30bfcdb23 tg/cables/colombian-festoon.json
|
||||
da6609e103d7c3ff448309e40881a151f5b3a9c3467587a5958ba44ad2274290 tg/cables/columbus-ii-b.json
|
||||
0d410c3a2a8aebf1e0d1d67baa3b51083312dd832646d2f63872cfeaa0e73f1a tg/cables/columbus-iii-azores-portugal.json
|
||||
6901c3af6134380a768d25bf703e2732891ec84216779e1cf977eae5b73fc9c9 tg/cables/comoros-domestic-cable-system.json
|
||||
cfcc3751bc1bda9f1624d7d7d2f22f038ae8c5d9c0ee8315e87ca8a6b23aabcd tg/cables/concerto.json
|
||||
fafa74942a3d4dfe39edd7d85a8184c160c966d479d8f7f0bcc5b3f8fe289665 tg/cables/connected-coast.json
|
||||
3e5a8d2fbb400b4bacb1b7abe02fea89ae623da42956e1520cc8d035ac8332a7 tg/cables/continente-madeira.json
|
||||
d87a498b85d4e1679d8a354aa2c55800f6b7ce97fe0b238a8408eed718741e75 tg/cables/converge-domestic-submarine-cable-network-cdscn.json
|
||||
e2b365d7234325e83f12864ef0234185bc825141e6e554849b0f0d830e5afc22 tg/cables/cook-strait.json
|
||||
3983887936334dfc1b0a8f85131ffa5f1bd156bf7e60fc6471c519cebaaf9c3f tg/cables/coral-bridge.json
|
||||
92a0ac62d08fd10291beeb80affa9ba46a91e573c156a89ebfe4863c0a329157 tg/cables/coral-sea-cable-system-cs.json
|
||||
f3b1789802bf6f7b1eeb7799007a13fb36c3d7f96ab9fcc8068c4fb17cb4959e tg/cables/corse-continent-4-cc4.json
|
||||
634ed150cfa01d14af5d36ca948fdd740aa5022a2a9d5eb5ec0e44465d764603 tg/cables/corse-continent-5-cc5.json
|
||||
e507e78dca27609d66fe6ede380aaeddaa6844f3430a2e1db666c162f92612db tg/cables/cowes-fawley-2.json
|
||||
d7de179c2c0338bf82d9c45b4a4e6aabe981c9b6744dfa34e4925d7d1ad0b8e5 tg/cables/crosschannel-fibre.json
|
||||
fa9f15097ff0111680362690eb0b73a7944c93e6f68b505ea5945fac802ecd5d tg/cables/crosslake-fibre.json
|
||||
dd511b7f0a20636234d5a26b4fa44f203e0bf5c4a6bbc406c92d5800392465a1 tg/cables/cross-sound-cable.json
|
||||
f9bfd097a59ff0624e17dfd08b7bde432e069c1238856d6def2117d91e67b447 tg/cables/cross-straits-cable-network-cscn.json
|
||||
de09cd092d07c8ea601e51f8646ef6bad4fa0162b241a25d4b8c9e4ff659a3a2 tg/cables/curie.json
|
||||
52aaf0d98497cbce03a18081859d95358292598f9140a06b0a5bade7c470a57f tg/cables/cyclades-a.json
|
||||
6b0fae0023399f77705850f7cd687744a8f4e03edc05c2da4580e1ad94e4504a tg/cables/cyclades-b.json
|
||||
8508142a9655e4ce534af711d5dfd5611da60224fe48137112527359ebf3e328 tg/cables/daito-loop.json
|
||||
fce002ddeedd1f2da5bab5ff4e11c0eca6eacaa7c8334cac471c9f3243f8068a tg/cables/dalian-yantai-cable.json
|
||||
ebc968fe736a4e8c22c63ea8176670cb0952b5da5421ddd5a271ac4e771c12fb tg/cables/damai-cable-system.json
|
||||
c855e8272991bb1ca177731ef74d726bf5f0ac5df0dc9933e96e81b840e2666c tg/cables/danica-north.json
|
||||
83102a45b9a65cfecaa1994f41bbac8da8a513f923df1892c6b03954b270e1cf tg/cables/danice.json
|
||||
d06143fd1d342ea417ba2751a1278ca249e13fce9d23cad689d654887027377c tg/cables/daraja.json
|
||||
9c6c7b8e296020b119784a0bf33511d2f955ae6bf8c4c602efcc8ef7eec466c0 tg/cables/darwin-jakarta-singapore-cable-djsc.json
|
||||
5a3b1bbe5575667fb5c52a9bc8eb5f5fb6be8ae87fd303f12b875779ce865fbf tg/cables/deep-blue-one.json
|
||||
3ebdbe98caccfe40fa0d24487a18790e3ff2dac76546a5ef161a771f4be5770b tg/cables/denmark-sweden-17.json
|
||||
6a10b2ed13fd4d94465c82bcfcb3efc046a752153bf512b1ceba900e24278a59 tg/cables/denmark-sweden-18.json
|
||||
f91e401b267d20e447cf57dfead74d6efb62574b3c081fc35f16598699c8992f tg/cables/denpasar-waingapu-cable-systems.json
|
||||
4dedbb9351a1accca2ddbea84631176d33350ea6622eb9d378d15c44da176b00 tg/cables/dhiraagu-cable-network.json
|
||||
3c3366e5c5d6666e2c470fdb510f673d177c27618a6f3fa9ccf50220587f257a tg/cables/dhiraagu-slt-submarine-cable-network.json
|
||||
e5e2470e79ed8e2aeedfc42d92b66f547862a7293a2a3ffacee6861e67b4ffd9 tg/cables/dhivaru.json
|
||||
aaed3748f24cff87236942dc3cf6499fbee5218ba114a5cc51e9d50331036201 tg/cables/didon.json
|
||||
1bae681c07555a60a5e3fcf9c80127d015c3254577fb58cb2898b91d0146e17b tg/cables/djibouti-africa-regional-express-1-dare-1.json
|
||||
cd96021bf44a99c7829abf05ddf4f8c646682b67f4fd2efaabfb1b910045eb61 tg/cables/domestic-submarine-cable-of-maldives-dscom.json
|
||||
7be26cfd89c245f0d97d4f4664f0129e84ccc5a26fd7a01e43c77dc24aeada83 tg/cables/dos-continentes-l-ll.json
|
||||
18d1c10c1f85d66b31d8886834071696c9bf3338101e0d680977e0e72eaa4b86 tg/cables/dumai-melaka-cable-system-dmcs.json
|
||||
cbc539d95839f45366be69cf2fad080542c389fb488943ba5ca64647a57f4ee9 tg/cables/dunant.json
|
||||
e9f57ba85277c5afe8d2fbbcd6ebbd414bc776dc2042930dcb9fd8180412d0ac tg/cables/e2a.json
|
||||
efe757dd77587453a427edc2d157cb03f8277212440c2022175877c9caffd27a tg/cables/eac-c2c.json
|
||||
396250d1ab95af47fec61f1c79ca0f647447b881ebdb107b2f9ceeff0743851f tg/cables/eagle.json
|
||||
2583ba6080f45f4074cca9ad77414fa40b384c004a987ee60f1a5b89b6788654 tg/cables/eastern-africa-submarine-system-eassy.json
|
||||
af9d6fbe9bb4b35396d40c0b41e45df184a622ff912e7bbf2126b3e5b8c1ab48 tg/cables/eastern-caribbean-fiber-system-ecfs.json
|
||||
e6c44ab22e7d2030032c3fab2c1edc71797a0f7d0b4c8dabdf652816526f1e19 tg/cables/eastern-light-sweden-finland-ii.json
|
||||
10b607d274e2947d101f70dce987736a08f9cb0518e19298002aef7e7bacbf3c tg/cables/eastern-light-sweden-finland-i.json
|
||||
33c8c2a70a8f688775ec45c95f0d2f75b5bfb3b745c60cb54134276d3f88bd00 tg/cables/east-micronesia-cable-system-emcs.json
|
||||
1486d8b7234533eec322921dc4c9b70ffff83b1227ee1c0fe455f94754b2ebbd tg/cables/east-west-cable-ewc.json
|
||||
58fd36f61e2b780f25d5db7f1d7ac8a3bd82f7b5842dce17dc04547fdf59907d tg/cables/east-west-submarine-cable-system.json
|
||||
9deaee3be5f9a57bc48ce667658e391a1b834b90917ea2d3c2a9a7737087fb92 tg/cables/eaufon-1.json
|
||||
b89720a34907cef2b52ddb4b50c9e8c87b7c1538cb3fd129a87ed9d26ce00169 tg/cables/eaufon-2.json
|
||||
0928e4cb8da300b4d9ec715c93b942457810c1f6034132a95c390aef7292dff4 tg/cables/eaufon-3.json
|
||||
6d61b8b5c26edd36b8828155580eb4a024b38567f4ff39a394ac6e94f4715d83 tg/cables/ebla.json
|
||||
a7a3f12c48559d9ac55da59ff1d767f3c77ea493d6c84ce22c03c30c97e2cdc7 tg/cables/echo.json
|
||||
1c05f3d8bbe5a5278594656b5ecdbd42997ee15d3a10609bbdbcc474b6f492de tg/cables/ec-link.json
|
||||
020996f3c6ebfc5d34223737823f63db6124b44c5993b31065e9fb33607109c8 tg/cables/e-finest.json
|
||||
cbbb76c0b9e1d2f712c3d1ee17eb5b7fc576fa274829b9b815c5c23f609531b9 tg/cables/elektra-globalconnect-1-gc1.json
|
||||
d23c77f4c0bb7ea074c9f972fa54d37bafe209494f62facf10b221139f1cb6a0 tg/cables/ellalink.json
|
||||
e52a9e6df982c2a705e02734672f595f29374d5dccbcdcc0dae39d67d8005245 tg/cables/e-llan.json
|
||||
beaf72b98b6193af1b0f7f0584cc2a2352e10a7f0769ae2a9e3b86bc9f1cc352 tg/cables/emc-west-1.json
|
||||
3c275a57febd438a52f070571736b66ca2f379d5affd4fb68c90e5bc917610bc tg/cables/emc-west-2.json
|
||||
af7b430f7d4eed903d0636f1d5a8b1da46833ad9de1167060cd90715261bc670 tg/cables/emerald-bridge-fibres.json
|
||||
f7d378930f766882bf6a897358d81e2baf6ce590dc081ff8dc1d7d143b910877 tg/cables/energinet-laeso-varberg.json
|
||||
dcb8302bc59e966387a725dbe0f32ba1d1b3f83bd46aa21e7524ef6210d48409 tg/cables/energinet-lyngsa-laeso.json
|
||||
167dd0cca394064034c045bc03623ef8f7f0c7c129b78d0e7d0f8f6e3d6c5bb2 tg/cables/energy-bridge-cable.json
|
||||
3753399fad6850ef293972bbe69382f09838f6bce3c4b24d757f9a1564467091 tg/cables/epic-malta-sicily-cable-system-emscs.json
|
||||
f9c6c246c1ac0ac6137b3862b97fcf0eb765dae0697f021afb58a30d014b0b0e tg/cables/equiano.json
|
||||
3baa7b0cc28df31d9778363bacec91c5808e3d46591f1baba0a220b08de644db tg/cables/esat-2.json
|
||||
0cc355f6893255763ef17470f8113bb15d5cf1bcc082367ff1398c93217df902 tg/cables/est-tet.json
|
||||
94c78895e983790ce6eff483720eb58cf0f14ce20c68aab6fd07465bbe637f37 tg/cables/europe-india-gateway-eig.json
|
||||
7018c815a6f13372e1a4c85583786bdb10a030804a6a355ca894e85dacee0b9c tg/cables/eviny-digital.json
|
||||
068167fd527e03112fb63bde0c72b0d15b2435adc5126bcd2ed49de4bb3e7d61 tg/cables/exa-express.json
|
||||
0f3cfa155bb1bbaab508c7c2055bfa82010b394415b7c931cb4b84e480bebada tg/cables/exa-meridian.json
|
||||
7a9a09071678cec5a8f3ffcd79177f3b7ed78ac77deb26783b75bb53f7ef5685 tg/cables/exa-north-and-south.json
|
||||
f92b410e2535bd123390c859f8db00d475a10f36a8b2297c88e7aa3292290488 tg/cables/exelera-north.json
|
||||
e3a01d4669658df294d2e21de1f36abd445c76c4d796aaa0e82568b4f6ef35c1 tg/cables/falcon.json
|
||||
a920deb9c3a6ede7846a847b8785bb10af7344f1cf87b5eaff8c0d7f00b5258a tg/cables/far-east-submarine-cable-system.json
|
||||
6a93760fe7f76ce7872e8d4d7dea11cec76a935a334ed222c42e5e14d0980310 tg/cables/farewell-change-fogo.json
|
||||
f4efd4e85c59e287cda648ce9ba7c7716a00ae06eae9f43fa47bb4f0c5cf97ec tg/cables/farice-1.json
|
||||
1e51b84c8c48503abae92dbeb841833cb47b71c8993c24f9591711d49c74615d tg/cables/farland-north.json
|
||||
94f5968854d253271fa937fb734868bbf98c4a5bd0a7c4aab33eb603028eeab5 tg/cables/faster.json
|
||||
b8424c8ca424f08ff91c5568f153dff2c4a7437350bb50a377c2e3d063fd28af tg/cables/fastnet.json
|
||||
b786f5b784f95b0d160ec017e7a7d14c0d3a81a0c1848c20e5bcdcf863e0e737 tg/cables/fea.json
|
||||
035c3cf956754a76d9869a5fbd0bcdf7905a18ebbaaf64515b9a24ef6094e336 tg/cables/fehmarn-blt.json
|
||||
c7c5fded68ff6bfe624246c336790c3b81a948fa1c0e2c911932b33ebe8ac5fd tg/cables/fiber-optic-gulf-fog.json
|
||||
030b8a3bd7134b06f99f4e53583e36d63fca4ba940ae32d4612e156f8a4e4f63 tg/cables/fibralink.json
|
||||
be7bbd0ac51da28f8ef4685ed00f6dc55dcc90c1fe29171cebaf6a9a3efa7166 tg/cables/fibra-optica-al-pacfico.json
|
||||
64727ca123bb2295ac2a608c6dbc6ec4548c8b86f9726ea059ba5302e006e4e6 tg/cables/fibra-optica-austral.json
|
||||
b81a66847231742230243fe78c6bedda2a6452e297b33348753fb17fedb21a40 tg/cables/fibre-in-gulf-fig.json
|
||||
4dc00c845ddef218d9d21d0f0a18937a6ad7ec13370079906ee844a71c82c25d tg/cables/finland-estonia-2-eesf-2.json
|
||||
a7430541c7f4f37fc24bde623cb071f38cea5b0da08fdbe46062c4be09374aa7 tg/cables/finland-estonia-3-eesf-3.json
|
||||
8cc6d61a3b62122b2a4742572ee4f8fff85d70999dc6d5e93626ff502b13a919 tg/cables/finland-estonia-connection-1-fec-1.json
|
||||
3109b21cdd3520bbdf3da88e97565a06d99f42067e37b2aa6fe3a985368773c6 tg/cables/finland-estonia-connection-2-fec-2.json
|
||||
3a44a53772b75915acabcfc1fa9011f913f84efe1c3672b757f8c911c3862cc2 tg/cables/firmina.json
|
||||
38e3fe9e467fff8a4170c3d47e6a4d476fe3284c7f37fa1cb98c340eaa16fd78 tg/cables/fish-north.json
|
||||
a72151deb737372e1b252c962d95d90e7f7eabb08525950abe8b5016b08f8289 tg/cables/fish-south.json
|
||||
fcdf07b8d547ffceadfb6dd6f6c21d2d1b92bfc1a1fe4657e75555be96fb7cbb tg/cables/fish-west.json
|
||||
a094fc3a2346f31bf905499fb9123b773bb14e1762302b2be441689f90bebc35 tg/cables/flag-atlantic-1-fa-1.json
|
||||
9f2b4a3585de1fb49cc157ba803112eb6b6dafd26163d0fcc405b58fdfdfb29f tg/cables/flag-north-asia-loopreach-north-asia-loop.json
|
||||
4172806e577f67682d66061fe077d2952276f0271699e5af7c8099331ca3a484 tg/cables/flores-corvo-cable-system.json
|
||||
8956c7a46c8f7225475ae642d8651520fc1bf339d7fd9bb932364b31fba12db4 tg/cables/fly-lion3.json
|
||||
0b1497c109065b76d4e0c082620f46dac1bc44bf6cbed9d49579976da95c93ec tg/cables/fnix.json
|
||||
609388d3114851f6b1ce3e093958fbdfb1099685a7414eb47741694b4f719f19 tg/cables/fos-quellon-chacabuco.json
|
||||
98bc2984fed76ccc7a5d032f694ccea1c929644d5a59be9d8166eafc6d63b3af tg/cables/gemini-bermuda.json
|
||||
9343137cf5a0e07b385c285a3dc91d5621d2627599fb7db0b645a4dd45cefac6 tg/cables/geo-eirgrid.json
|
||||
825eb8702d62aafbe15fe112010b061f77354a2517f9027be338557f15cddf26 tg/cables/georgia-russia.json
|
||||
0323818d3b5d1cb567c4cc0e49f0147d6e42cb838851c0ab725d681aa3b1acd4 tg/cables/germany-denmark-3.json
|
||||
ae5b93ba74657347ef4d1aff13b1e095dc82bf020000772bdd661a604089c182 tg/cables/glo-1.json
|
||||
b7c71528549073bbb5c98211a1e0d5b59bc2d49b189868e89192c30d2d610a15 tg/cables/global-caribbean-network-gcn.json
|
||||
6f510ca45daa7eb6cda2ddc35ed7f25e6bedb298571db676360f828d7b163566 tg/cables/globalconnect-2-gc2.json
|
||||
e513efccb7ed20dc64b52f3f5f6a553f9e54679cdc0dd3f8e49a58aed2f1c3d0 tg/cables/globalconnect-3-gc3.json
|
||||
2631e863d414653df76c30d4e3ac733603a54fcc8088031df17c3644ecb54d13 tg/cables/globalconnect-6-gc6.json
|
||||
412142df437b24c2087825833dd3e5f456d891658dffa51ebf9a2eff3ecbfe9b tg/cables/globalconnect-aurora.json
|
||||
a942765b0a9865ccb63f944ad84925df71bb3c9e0c4ca42a8bce33d48a663e50 tg/cables/globalconnect-denmark-sweden.json
|
||||
6cc6daa7219028d82b8986f4aa6fd79494702a45046f91abac6741e518b4917c tg/cables/globalconnect-kpn.json
|
||||
87e87fde2f5943ff40f3dd2de74411861555ec60295735a4e46b6cdb6ab98b7e tg/cables/globenet.json
|
||||
941e495c038b5040df4ebba070366198b454944b29afe463960b57063cfeed79 tg/cables/go-1-mediterranean-cable-system.json
|
||||
a6af83ec1730c23029fa172f7398307b1636f7999dee950da78c580b5ab2d5b3 tg/cables/gondwana-1.json
|
||||
1534e1d90c9683e64a8977c9d795e8a6ab0cb65d1a208e5827f33d28892e4b23 tg/cables/gondwana-2picot-2.json
|
||||
51ee2f798c5d19fe9d764b24a44eb6f5acb3df83bfeb803c7c3724d10e6ae1bb tg/cables/grace-hopper.json
|
||||
cc7c46bb13e09ce5511369d22eb9033f560cc50aa2a0e8074076e60880335cd1 tg/cables/grand-bahama-bimini-submarine-cable.json
|
||||
0d484bbeef3911d8ce7f9f7d30e5e053df63044090ec3dbd52cad91efb5fe4c1 tg/cables/greenland-connect.json
|
||||
c26422367b907e5ccb086fcd2187aafb0066dd6ea6c9fc5399b68da479dc9615 tg/cables/greenland-connect-north.json
|
||||
5b7853c42009c2469b85ef56da5edbbdcde3ad79dfa8f6903006560a0675ca25 tg/cables/groix-4.json
|
||||
5d3d062c61a78ff0a93399d01c061f0f62703842872f14edbd4d1edbf35e3875 tg/cables/groote-eylandt.json
|
||||
e378dd23062cbad9812bbcdce994ab8ba48110ed0fc86d9e2e5e08095ba8e037 tg/cables/gtmo-1.json
|
||||
461f73fa81fa62c5cbbf6f93b192d5fbaa0c9e64b2aa9cf0de262cb1366b5b35 tg/cables/gtmo-pr.json
|
||||
e6d1d9bd40dcd2d166dcaeb7e384c7feb4c71fff3f9157f35dfa0960e48fd589 tg/cables/guadeloupe-cable-des-iles-du-sud-gcis.json
|
||||
a4149a16ddd1e649802931caef09583c565be33941437e92706ab6f4a4bc9dbf tg/cables/guam-okinawa-kyushu-incheon-goki.json
|
||||
ea9852ce90ffcb608974ba64112b05540c12aae3e12976f0f1ca4d9f1a989138 tg/cables/guernsey-jersey-4.json
|
||||
4e9ddfe1dfebc9e90e19432aa09735304338301a46029af550135f286fc327a2 tg/cables/gulf2africa-g2a.json
|
||||
ebf13b9bec8852ed1cdf9a053261da4b832011cae42aedefe8e3648415d9b1a9 tg/cables/gulf-bridge-international-cable-systemmiddle-east-north-africa-cable-system-gbicsmena.json
|
||||
c0d71620501f64dc8edfe71ed49a86d58c43466ee91ac96d85b09f443ee9b394 tg/cables/gulf-of-california-cable.json
|
||||
dd74e1912e329be20d57d32e403b1c47db92939e21446759296c1eaf216b096b tg/cables/gulf-of-mexico-fiber-optic-network.json
|
||||
778c56bed60ea2d24e26d06a091419de938d053797545ca8a91059bbc0c22bfa tg/cables/hachijojima-mainland.json
|
||||
3fdd0ca4cb93a79894b829c65cd7c7f8e7991797934226a698efff1402af7297 tg/cables/haikou-beihai-cable.json
|
||||
a45a1eec377e869bda015f440ec3d3bbc9b59dd9ab81e34b581cc5e3fc597831 tg/cables/hainan-to-hong-kong-express-h2he.json
|
||||
3ccbd24543119b3f9fb1b73e26b54eaa7aa04390275cf3d194269d10c7168ae5 tg/cables/halaihai.json
|
||||
a43bdcb307e85a2ceeb33a302a6d9eb33adac9fbbb29e1867a4e4cbae0a8f9fd tg/cables/hannibal-system.json
|
||||
96166058b13a0af2816b8a5078e13805332cbfbb57ad02277e99d9b317540bd3 tg/cables/hantru1-cable-system.json
|
||||
aa84a85b3c0e7c9602deda87f3b652d2a6ddf742a59cb7f8a7e3a0d078266e81 tg/cables/havfrueaec-2.json
|
||||
c51259839fe59a827da74c7b28ebae2d712b74dc30e67c13e4e91c9949a17760 tg/cables/havhingstenceltixconnect-2-cc-2.json
|
||||
3f3644f1de05e6e1900467be86bdcaabb766c07f1800d4a96545bee2c593614b tg/cables/havhingstennorth-sea-connect-nsc.json
|
||||
5326c54e7ba95284582e4a7cc8e4fa4b1ddc8044ca0792c819bb3c1bbcca17c6 tg/cables/havsil.json
|
||||
76c1d3086c93859df12620b298f5964f68bd91f67590436016254fdf8538b246 tg/cables/hawaiian-islands-fiber-link-hifl.json
|
||||
6c32cafd1c24d5225b881965fa87302731a71a9a1017ea7529fdace37be9d469 tg/cables/hawaii-inter-island-cable-system-hics.json
|
||||
e41a393f5ad6c9ebdcf6a88ef43dda2a81311ac4cd53fe29f5e52683c008b644 tg/cables/hawaii-island-fibre-network-hifn.json
|
||||
8c70920cf571111682c4246192a05d04fb13b8c2c6b29cbdb1ae50c605cad9d9 tg/cables/hawaiki.json
|
||||
14ef9699896bda03a50b019e740067d0d64a6d3e584cdb561a0079b3f42e2ca3 tg/cables/hawaiki-nui-1.json
|
||||
d342b4ee53438b9c62a59d3530ac1636edab507c0275166b7ae976a7c03b722b tg/cables/hawk.json
|
||||
f80b887ce86f929fbe9d0a4642ad450ea0af877254839e581b04be4d594d4299 tg/cables/high-capacity-undersea-guernsey-optical-fibre-hugo.json
|
||||
20d5e734c043f6da0d10e237f5f7eff0295f231c0426326bec7c886bed0ace3b tg/cables/hokkaido-akita-cable.json
|
||||
3d8402980d37a98967f56b2734a439903040443e15bb87e79efda700b1bebd3c tg/cables/hokkaido-rebun-rishiri.json
|
||||
ebdcf1b93c10cfa3d7d5d4308414a5e6559b7c60fb841a2836095645ec8d6fc6 tg/cables/hokkaido-sakhalin-cable-system-hscs.json
|
||||
cda2f1e84258d755a82fb24461cb823db12fed0b4cc364fd1a0fd2c6759aed24 tg/cables/honomoana.json
|
||||
4fe180e897e555f3226802b40b312c546cb63230eb8806fef926e1cff679bbaa tg/cables/honotua.json
|
||||
3f2fe1bf0e01312e3dd240b8d3629c867d93428b10b910224173c0d0f091dd02 tg/cables/hronn.json
|
||||
c5f574d129a1ac944d0aa9251e9f25cbdd36d00f9b7067c45063230d01559d54 tg/cables/i2i-cable-network-i2icn.json
|
||||
46c34e0007c9d632c43229febd0206f66df18b8069199d47ed7686cced781240 tg/cables/i-2sea.json
|
||||
21550339b931c18b505fa0b08c5e3aca0611baca6b677540791d148df684231a tg/cables/i-am-cable.json
|
||||
d0b87b18e231c4d5beab4fa7c7cce387fb1d949f157b87bff59ed97cbe867159 tg/cables/iceni.json
|
||||
303bbe4bfff995ca687f0f0a30ec415ad14381e65738f3b1a5e4f9a0aed59582 tg/cables/imewe.json
|
||||
f96546b0862e7bd5efb457f62ba6922ab0526f047d45d72381c01e5885a3fc26 tg/cables/india-asia-xpress-iax.json
|
||||
c3991b391818b628fc54ab6892742ab1e001b6d9c9537e6cb580a1e7498021ab tg/cables/india-europe-xpress-iex.json
|
||||
a090cf9d752a7e7a940523ecae37d7f8922d30ee73b82c4ca9957fabeebf8fd7 tg/cables/indigo-central.json
|
||||
d05362b55c596d71ef0fe46935b3fce078313e47faf71b0b665dac8fbdd5b778 tg/cables/indigo-west.json
|
||||
94b99b00fb540499e541d7a99cf3f56e8c04904e1fbb2767b1351bb1ef6ffddf tg/cables/indonesia-global-gateway-igg-system.json
|
||||
d3e999e8fdaea9bb891d9014a019179905ecfa17886c1047325734a5db5bee06 tg/cables/indonesia-tengah-cable-systems.json
|
||||
e840bfc8d5f71c022b0aced58f2cb1f85664080fd2ac577d231ffb6b7d408e2c tg/cables/ingrid.json
|
||||
5c527dbb8db6f96fa07edf65d0aa04d14102bd697003198f41e4a2a794e3abf2 tg/cables/insica.json
|
||||
4c6dc5c9347ae3a23cf364d7cba9fcfc384b73e2af4d856124175f51c86c481b tg/cables/interchange-cable-network-1-icn1.json
|
||||
c4d4e463f673f4d8c254d2d52276a77c250c4d4c9e856f2fd6d0e0b0cbd367c4 tg/cables/ioema-1.json
|
||||
16b7c12476e46a6a543360e485f159dc4f9ebb70eaafd9047ec0f15f941ee824 tg/cables/iokwe.json
|
||||
84ef17db5f873df967ae687a817b7b8f225eeb422d18b676cfcd4528a60617bf tg/cables/ion-cable-system-1-ics1.json
|
||||
99be63c9b79126836b2e38bd91593eefb06cf40f6b25d0adf62fcfe433d077fb tg/cables/ionian.json
|
||||
68656a542a30d91f4e6fef143766f038954abf6408ce764f1a5667c43e77142b tg/cables/iris.json
|
||||
10b42db3f3b3e686b23440c0ec9900f3a1bc05eb7527594cf1b05a1bcaaf316a tg/cables/isle-au-haut-cable.json
|
||||
bf9d14d1d5b8d26c03788c43ea4497e35d92d224ca254120991bb59fab11bba9 tg/cables/isles-of-scilly-cable.json
|
||||
7fb8eaf80cbcc85177dc181bef094a59b639ed3a76c4b45cef590666102f4382 tg/cables/israel-coasting-1-ic-1.json
|
||||
17847e50c3dad6d57d2f99806920e605e70184b9d86d6932f4ce6a5eb8dd62a1 tg/cables/italy-albania.json
|
||||
41643bba6111a95fd0c50cb9f6b24ca50b9f13300828ff091ffdd6ed2a8182d6 tg/cables/italy-croatia.json
|
||||
786269c675b57a22935d67a4423bd252c06a9ef620ad3cda40d5e94ec2ea3b8d tg/cables/italy-greece-1-ig-1.json
|
||||
c7daecac2b0bc47a9b88cf0dd612f7aa86ff268843aaa80e35323ec82807289b tg/cables/italy-libya.json
|
||||
adf3891ce8ae5dd871e0f163aebce36bcd78e61631d5039b15a10c4d0b29c77c tg/cables/italy-malta.json
|
||||
b3f72ec2ee89bbf9520a2c32cfe7e8363bed152f79834b773dceefbc168aaade tg/cables/italy-monaco.json
|
||||
7058a96442d7edc8a3ba5eff70b18b3b847689b00473751a005a3b07ec9f369e tg/cables/ithaafushi-maafushi-hulhumale.json
|
||||
b08e4690008702885a95b950be25b2210b6e00a407d90ab22be093506319f61e tg/cables/ixchel.json
|
||||
491419f4d002f28a7b222055773c117e2ef37e735119dec71c3604496f83b60f tg/cables/izu-islands-cable-system.json
|
||||
b1385d612a22489f06631ecdc90817e8987ae8270472abf4064af41749693ab4 tg/cables/jaka2ladema.json
|
||||
3c977df9f4fc2c597bf7480f61faf74f9f43aefe3cc78083f30f95b1b1296ace tg/cables/jakabare.json
|
||||
d8c2c586b1e99b4dad0b4580f5d39b8e6a3e29c49466033487dbc07877da7bb3 tg/cables/jakarta-bangka-batam-singapore-b2js.json
|
||||
a705ebcd910e89f987fcf2279f07600c2a3af1c6c38777b73d40c9596e0de172 tg/cables/jakarta-bangka-bintan-batam-singapore-b3js.json
|
||||
6ee4feca6609dc4103dba84fe93b764c8e4e5f05b61bee2a368bc4014a751d43 tg/cables/jakarta-surabaya-cable-system-jayabaya.json
|
||||
3bcd1bbc72fff2ac9c4104d040260955e889a38fe1fa7f6cac53061d510697d6 tg/cables/jako.json
|
||||
e4d9e511b4fd7b16430e6b4270bcd0655e007d1f5f0e3380fd2d7823a34d6abc tg/cables/jalapati.json
|
||||
62845d9032052917fb6496717d65c18f93cbbcbb5660bbee7bbc42a5eea7add2 tg/cables/jamaica-submarine-cable-festoon-system-jscfs.json
|
||||
2535d764bd70985db50ea81eb2b3fd2d030d9084775c231393dd50a5207e2e5d tg/cables/jambi-batam-cable-system-jiba.json
|
||||
67a13f9df77bf6640f3a746bec8fc3913ef6dd2695bcb9bb0ce3e9a0ce2b8b99 tg/cables/janna.json
|
||||
7f2082c922725eb789d01a84e57f05424e271351415f5ec828b0265c71ce0dcd tg/cables/japan-guam-australia-north-jga-n.json
|
||||
4c5c8e7323904f8ad2194515b80995b206b5a57992a4e18825bee037aa3b4c91 tg/cables/japan-guam-australia-south-jga-s.json
|
||||
caa4ace711e925e3635befbb6eb807afb9faa73ed80c9fae46f17e3405d5a65d tg/cables/japan-information-highway-jih.json
|
||||
9f4dd4555b1bf28f0776b2c0666f1711933969efdb22c9f92534956593d2da9f tg/cables/jasuka.json
|
||||
6d6ec34575c9bd3d1946840b99dc7ad2a60d2f1062beabef291b9c5b22f66976 tg/cables/java-bali-cable-system-jbcs.json
|
||||
75e35c71321454291124c527701fc4e5f9aa1b3258639d45fe083d6108d4b32d tg/cables/java-kalimantan-sulawesi-jakasusi.json
|
||||
de6a4f0fe186fd7f596288510c5f256e8ec917cd26646d1413338ec2eb5c1c9c tg/cables/javali.json
|
||||
3895222d05c7b4c9373110f8c4c4bd8247212d98056d245385175dc3930b547b tg/cables/jeju-mainland-2.json
|
||||
e36ce6c00c614ba4d6d8c98bbb4a9c6062298edabff90308613327153b763b13 tg/cables/jeju-mainland-3.json
|
||||
fa5588c82d13f8cd1a5e0d626814eb5636fc11330ba2bf3519e7773fca185544 tg/cables/jeju-udo.json
|
||||
4b45cf90c4a025be6045c7057647beac2d5c59dc281afd595411502ea3c349a1 tg/cables/jerry-newton.json
|
||||
2a0fee4cbca27e8a251d1790eb708742fd45ee1d2b09776835236afb45830537 tg/cables/jonah.json
|
||||
933236a533de54f05ff1e4209b6d8e4b3b8110b1379fb832c50af4333a0247b1 tg/cables/junior.json
|
||||
4f17c9e33d3990a71683b4f485146fd73dcebdc99eb417ec629fe13400ae0719 tg/cables/juno.json
|
||||
d09dea8ab99fe45611175689b0e19cde512c25638d132a0c8ee698d4f8e8be99 tg/cables/jupiter.json
|
||||
a8475c9366f7aa03695046d227a770505f95c8922a7cc4526339599c5c31fba4 tg/cables/kafos.json
|
||||
3fef82ef0cf313d42c0facf4b3c067e3b7c8397c51bdffe5088f761e4d3dd2aa tg/cables/kanawa.json
|
||||
9b677800d3e635e63e729ab1e1cbd8d3e8cadd6e2aaa1e0f8185bc6cbc9ce495 tg/cables/kangaroo-island-2.json
|
||||
64c80fdbad2b78835621a002ddaa278bc375f12d4ac14a0c62681308319957d5 tg/cables/kardesa.json
|
||||
9b89ffee7352dfaf5749159c21f8a28cd65f1f4ce497eff4fb954ee395a872b5 tg/cables/kattegat-2.json
|
||||
a980df7eabf81bf41175bbddf01839fe4797e76c01550f97275382eed8d43dd2 tg/cables/kattegat-cable.json
|
||||
0b8abdd30c8169bc028445f87bf4b5e98b40ffe97d842ed53c0771ec5d99bebe tg/cables/kerch-strait-cable.json
|
||||
b0bd1ce66f5fe0994ccc2a3c98a9f3e1428e195e74dd5a85b91916f34205de5b tg/cables/ketchcan1-submarine-fiber-cable-system.json
|
||||
7330afb194f877bd36165476a65293531388859a5f8297d4c1ee696d93c1a00b tg/cables/kingisepp-kaliningrad-system-baltika.json
|
||||
0ee98c578c9c67226bf6d25b5d3db93ee8603850d753fde1d10bfb09a9d45d5b tg/cables/kitadaito-island.json
|
||||
637feed927cb4acc187c4cb7480ab9518be0db550cbcbdacb9c1f13a146cd27e tg/cables/kochi-lakshadweep-islands-kli-sofc.json
|
||||
0aaac61904c9f5f6cb1f07e011acd6e976ca074d4d54d5a6b1115ca0d79f3258 tg/cables/kodiak-kenai-fiber-link-kkfl.json
|
||||
2f707595720d66f068a47c3c5173dfcf4a584b50a65e315546f9d99d66a8ebb5 tg/cables/konstanz-friedrichshafen.json
|
||||
0a025559456b1676a991266aa70b56884e1d6b8dd0c27a17c9b1b2e3a4d24a3f tg/cables/konstanz-meersburg.json
|
||||
5d43ae7eef8334daaae4e0e08ad7b434b5ffd708b53be8052d75942671c6ddb5 tg/cables/korea-japan-cable-network-kjcn.json
|
||||
3c60e5390602c240e4561782cda61b63b5dabcb937ef40dd6ad9a1ebb07f5800 tg/cables/kumul-domestic-submarine-cable-system.json
|
||||
9dfc488b1f5f846a9660c599fe993aec1896ce618652de5fe59e34ad66b2923c tg/cables/kunoa-north.json
|
||||
accf55132d744edcb76c4a4bdb380af75cc49a86122c6d2d15de360d0660b48b tg/cables/kupang-alor-cable-systems.json
|
||||
49673d91740e4da375f0381842ca0f3899644e05a01d1c11ceba22f934d82abc tg/cables/kuwait-iran.json
|
||||
b4f1e7d8e25b12e33b5e921345913e07dfe81b3ed34f6184f025a6c9a6e9ff7d tg/cables/labuan-brunei-submarine-cable.json
|
||||
4e731d1cfc5f93ee85fe8c893a15398f023b000bb535e07c1c794d2e42fcd3c9 tg/cables/la-gomera-el-hierro.json
|
||||
b756b5c3fe911781ab49a2d4bc2f85994870358016bb0d657a9571e890ab0501 tg/cables/lake-albert-1.json
|
||||
ef0dadb8437db61b70629fbb26664f2d550c224f7bd5a2d9e7e17d7af8cb7000 tg/cables/lake-albert-2.json
|
||||
d7553597501c0587719378816917af8b228e1f35c2e4587fcfab60916fc54a91 tg/cables/lake-michigan-chicago-crossing.json
|
||||
0c210b97a9e04c1b8f63370bf4ca2201ba210365bd9821ce22606fa211e212d1 tg/cables/lake-michigan-crossing-peninsula-and-island-connection.json
|
||||
0843820205cef56920aab9184b6bed197dac27861d85fa5ba7025c09464ead8e tg/cables/lake-tanganyika.json
|
||||
d8fb382ca6ef341a7419dac03a39c244ec48dcb8f694c9bc9f8d4f5e2537fb01 tg/cables/lanis-1.json
|
||||
b0a0ee3f16f449a37b38d8a961be6eb9257591111960bb0145d511cc2dc3468a tg/cables/lanis-2.json
|
||||
f21920491c5f0c5aafa5b9d0a5376a410c335d24d8c8dd03e55a7e521144228b tg/cables/lanis-3.json
|
||||
21c197d59f45c3177d1bff280bb8e3942014c203cd5761d27bc0fea8133888dc tg/cables/latvia-sweden-1-lv-se-1.json
|
||||
ba67f967f74708fb144f67ab5856812304fdeb6c3988dc05150ba5386c1c19c6 tg/cables/lazaro-cardenas-manzanillo-santiago-submarine-cable-system-lcmsscs.json
|
||||
3da7ecb717fcf40ed91410e91269f0f507f9ba819e665b14c222c2f432c2192d tg/cables/les-dhyres-cable.json
|
||||
3cb747607bf2a0f02a2e7c18f6e6d924fb2d2baed84f2ac1bcfa3d15a2065561 tg/cables/le-vasa.json
|
||||
641e94772688842ce58cdd309eb76e77b99749321446d962dd7486f827378518 tg/cables/lfon-libyan-fiber-optic-network.json
|
||||
fdd082da59734b61e0670074c301e14ca8326042b026a28a90370343aa3d7d84 tg/cables/libreville-port-gentil-cable.json
|
||||
cb28eabcfedfbce8e4b0e849bcac15d3164f173dac3599091f8d56142d072b54 tg/cables/lic-lin-lamp.json
|
||||
6ffb4c9eac500961b1eb327cba817041b1c7e00eea33572f3fad25b58839b6c5 tg/cables/link-1-phase-1.json
|
||||
8e985e9f76d7ca4358b27304063a9dd0f48b64bd3e2857b69ad973c30646ddd1 tg/cables/link-1-phase-2.json
|
||||
a4bf9d1b93b7d1f5f565675fc3b8546a7de406541270b5a6a26d6931f7d965ae tg/cables/link-2-phase-1.json
|
||||
228206d99e4437f34f639801cb0180ae643e9f94ffe8cf12a13d16aafd3fdb93 tg/cables/link-2-phase-2.json
|
||||
4b94fd975cc64fe99a45335d167e254ef1d7cd97ba191388a48bf942ce001929 tg/cables/link-3-phase-1.json
|
||||
01a5de8b834551193aab769857bd22df71ab9680e29d9be170dd2cdc2143caaa tg/cables/link-3-phase-2.json
|
||||
9aa3772c0bedd9faca38080480921a6cb2e8c58bacd4dcc97b354f9aab3d7f4b tg/cables/link-4-phase-2.json
|
||||
9930bb3d6471ef7672477f972d86aee7f2ebde10921e1275cdae2c2c9c656ae6 tg/cables/link-5-phase-2.json
|
||||
bff8ee9a7126da50bdab6ba0864a72999bad3eb012722c64453172694b997702 tg/cables/longyearbyen-ny-lesund.json
|
||||
971f67701b111b8e1a4246258f006a9d71f6494944a290067ae2fbafed97edc3 tg/cables/lower-indian-ocean-network-2-lion2.json
|
||||
e513e3534f0c34044c975c7a75cd8af60d92e36b4535951ac74e0c7911f24faa tg/cables/lower-indian-ocean-network-lion.json
|
||||
eed440407d1bb53084c90a0c365810b2b007823eb34d207e04fc8cd2a82c2608 tg/cables/lumut-pangkor-island.json
|
||||
7136795d0c43008e437bd8174fe7b57a263a456046b183ea580d8c6c74bef807 tg/cables/luwuk-tutuyan-cable-system-ltcs.json
|
||||
c66bb57f78fe08f856273334743a9416bac56cdfa086b13c2c554c56b049f98f tg/cables/lynn-canal-fiber.json
|
||||
991da9155c1a359e797c17d12639c97f69b39048180175ad145e5f8ef5d748e1 tg/cables/mainone.json
|
||||
c44c84485198c59128a32b50ef71bc54a5c198aa3fd5881a838511cc4e9db89b tg/cables/malaysia-cambodia-thailand-mct-cable.json
|
||||
4dbcda3e28f87938ba5cbeafd049f2f4afe714bb2f161ce1d6fd2c7871f4bdc1 tg/cables/malbec.json
|
||||
391104fe3efdd2b8c1538ab56859e421314a06c122a94498afb5c29ef4ff4811 tg/cables/maldives-sri-lanka-cable-msc.json
|
||||
70fbbf0a1ca98468e3a2bf2ef7bc1ae9aa862097323a8fcc4aecf60c45e0c8e8 tg/cables/malta-gozo-cable.json
|
||||
d3a7b552e14f204ef9701a0d9ff15a67f275368999b967fa8c89c5b1e4aa304b tg/cables/malta-italy-interconnector.json
|
||||
ec5ae92260a5045f5970677d0ee758dc7286784b7af3f66c53219826ea7064e4 tg/cables/manatua.json
|
||||
9cb7a97dffcafd61b0fff6a05d0e8a65b68478f8005a246984dffeb47b777309 tg/cables/manta.json
|
||||
6b67d076b8789461e5803cfdc0ad3f8723981c2aa759f7bbf1338502f1379072 tg/cables/manx-northern-ireland.json
|
||||
b8f47de1a2447dd095df3415d82276d15d48b4c4f1f1b4bd71b750598736abe1 tg/cables/marea.json
|
||||
e17bc0d79828702ed45ee47288fde4061d89d20b88acb33b95b03d4549d7142f tg/cables/mariana-guam-cable.json
|
||||
44d48444db433db519c9ce2c4df7c555146e8a7743a3519a502e5bda94382312 tg/cables/maroc-telecom-west-africa.json
|
||||
b4d53b6fbad6817c9074298bb88b39ba387587d9899140f64ba002111f0cb543 tg/cables/mataram-kupang-cable-system-mkcs.json
|
||||
58637dc3bc448a8bb0165b15ed1dc7b6c9da032a19bad9f8652379b8360eeaf7 tg/cables/matrix-cable-system.json
|
||||
fc7d4161801418b7c21cd4db6ef87f700d1d023c28308c0321e05cb66b386c5f tg/cables/mauritius-and-rodrigues-submarine-cable-system-mars.json
|
||||
124860adb83ecc675f98c433985b3603a44b7ab783d3a6d9255cae9429b9259e tg/cables/maya-1-2.json
|
||||
7890552b6b334ced6d88c0dc749c9ce3dff96f3d31c12a81085693c9193ae13f tg/cables/med-cable-network.json
|
||||
f5573a7139aac2802b4b1472e8361aa875eeffd3d116a7843f85fdc8eb0ef66e tg/cables/medloop.json
|
||||
bf5441ef82a2f4d7a65625978b48d6f58877c198eb976272c3bda08d906ab6a3 tg/cables/mednautilus-submarine-system.json
|
||||
5ac23f35f5268d1ec2b4c93cd78299de21eab622e3d41a6caa9e1a69f1dc3796 tg/cables/medusa-submarine-cable-system.json
|
||||
7cd2519fee4a5c1aef669490f77e99a0f207bd8757e1abd57b4710dc6d6409d5 tg/cables/melita-1.json
|
||||
e9cc8019e65baf248c64bbf6c769770629841271cf376d582d0c56796623014b tg/cables/meltingpot-indianoceanic-submarine-system-metiss.json
|
||||
f4890cc16dcf5a5bf19322ef881fdd1bf30d07ed2eb94eb2161e68dd4791c69f tg/cables/mercator.json
|
||||
614dc3707fbe54744b0fe72f42cc2a4b7da93cc74d812c1b89f76e427ec785ea tg/cables/mid-atlantic-crossing-mac.json
|
||||
83a6930f9b7324ea0bbe6292db236a3bf0bea7b8d8d4d5b5b91c1e84aa339aa9 tg/cables/middle-east-north-africa-mena-cable-systemgulf-bridge-international.json
|
||||
e55a62f2ab044621a4dfaad075a99c9025b0ee19db738a92e3646abc0562e774 tg/cables/minamidaito-island.json
|
||||
60a4e21557f6a62f32662b67bd46814917ce8ebcc830c427f16f9c7b19ae1253 tg/cables/minoas-east-and-west.json
|
||||
f3869365f7f1c5cdbd0892598f7d2e408cd076989530e66e212b9d1d3e2d31f5 tg/cables/mishima-village.json
|
||||
3880933b771c573ee571dfc14224f75df527ba1b4579db40b36fd8021ace96fd tg/cables/mist.json
|
||||
ef7f0978db478dcd26bfa144f6b06841f5a44c4e39a755c68230050b6d5f6472 tg/cables/miyazaki-okinawa-cable-moc.json
|
||||
d378a1ff32b80159fd27216c28669f7990e9f3156fa905e89c3791daacf6e127 tg/cables/mjolner-east.json
|
||||
9bf95165364043e5ab5765e615ad6e2a0859f12bfa89c007702e91e8e79a2acd tg/cables/mjolner-west.json
|
||||
79e3a6ddbadf31757a5ae93d36635f458f3c18ed81734b7040c9ca8bf525368c tg/cables/mobily-red-sea-cable-mrsc.json
|
||||
2399d0abc0159c4e06ce381129c1c7227c4e8742c807f6b2c78fa8baf4885592 tg/cables/monet.json
|
||||
681394eb1e395ddff31471f5ab471245ef5e4216f8eec2680679b43977761eff tg/cables/moratelindo-international-cable-system-1-mic-1.json
|
||||
f996007a006e67322c7f189780b91245d3ec975a9ad694cc51faadb244f78d70 tg/cables/muroran-hachinohe.json
|
||||
f1aeb8f71f7a66c27c76f2d064e77a62727589be6fc3a5d2c54d3d449bc9e80b tg/cables/mvista.json
|
||||
f015e33a875c6605fba34d3af165542bf503212044966b1d65d979a64653273e tg/cables/n0r5ke-viking.json
|
||||
c157df453b7aa2ad17ecdb6bac69f2ac1b692fe7cfbdbf318aa446ad0d206d45 tg/cables/national-digital-transmission-network-ndtn.json
|
||||
78c8735d80ba3144e6b3bea9d04f0e62e11716265e1f437bf84c7be401ffe8ba tg/cables/nationwide-submarine-cable-ooredoo-maldives-nascom.json
|
||||
552c989b575e1a83e51c4dbbbc7aa6b94a87608c9ef5e37644933076907f3013 tg/cables/natitua.json
|
||||
1dd1f1e79a3d56545ebb68052578cbf8b0a5ab85695e0798872632ca25c083d2 tg/cables/natitua-sud.json
|
||||
e24583811bb9b4a780b0897ae616858e9048b66687c884ce0cf21a8f92222b3c tg/cables/nelson-levin.json
|
||||
de8ea675af6587723b22f8c5c725ba30f74549366b06cfd3064b490276a2d39a tg/cables/new-cam-ring.json
|
||||
88bf1a45679ebe1791eb922b34534ac274976f16efcdb5219c2abfc1bfbb8e96 tg/cables/new-cross-pacific-ncp-cable-system.json
|
||||
9394ba7993e921f4b4aaedb952b507c72964af2bbb0b3a83f1c8523b9b316244 tg/cables/nigeria-cameroon-submarine-cable-system-ncscs.json
|
||||
bcc75ee8a6fd8d4c6009c2b4a742eeb81734b4aeeaaf36f3839707b0aafb1a70 tg/cables/ningbo-zhoushan-cable.json
|
||||
98eacae9133ccac3b0a69109f9f22196cbd175196932b3763521acec28469596 tg/cables/nome-to-homer-express-nthe.json
|
||||
ae9b4151a8f1a875ff7f7519c4d0f7bbc48a1f5aeb02e64126dee3d388bbe3f6 tg/cables/nongsa-changi.json
|
||||
51ab15fff56834bac0967b2a839adcb7955de0ff1de6bd87a8f9051ef3b6ffc2 tg/cables/nordbalt.json
|
||||
6c2ea22c1e6b639892431f431c1dfcc237ea6f628992c6e6656170edca1da71d tg/cables/norfest.json
|
||||
f4f7a1d972c1564d3cb8feb429b061e929b248051cf6b3e64bdd2aa74b7665f0 tg/cables/norte-conectado-infovia-00.json
|
||||
a5e21b40c0a1ac8a9b8fb485d256faa6f562181c38e831b66657b53b1f04fc03 tg/cables/norte-conectado-infovia-01.json
|
||||
85bcc9e693b4d755f6617789d911c8221811d42689ca8ab606fde114fd051d87 tg/cables/norte-conectado-infovia-02.json
|
||||
cc6faddb2d057f0323bd3657b106f87e3c616ed61f2543b65b3ed24d087eb41a tg/cables/norte-conectado-infovia-03.json
|
||||
8b2d8d05a1b9da1db64af743195c2226a07d067d29651565a4f95388768c1077 tg/cables/norte-conectado-infovia-04.json
|
||||
b583d4ec25d005ea66a0c39ad3c4138fa11328d158e0b3e29a5aa81083538c63 tg/cables/norte-conectado-infovia-05.json
|
||||
0f86f41ddd3a945d86bbdb764b253ba6179bc64f2e7e6363120212f613472554 tg/cables/norte-conectado-infovia-06.json
|
||||
ab943fee7e05da2057a2b2ae24452f0139c3fa57acd7d355a0cdb2857cd7f901 tg/cables/norte-conectado-infovia-08.json
|
||||
322101610519d572f15864a8f666f2b017d8c43390d642cec695641b67443878 tg/cables/northern-lights.json
|
||||
fff3abd879ca57e01029590b0aa7a2104bdaebe50203cb004fa4073e975470ab tg/cables/northstar.json
|
||||
06351465fc813c1c7c33c11e521efd469ba18a2422a2d8ef80ab0f676741829c tg/cables/north-west-cable-system.json
|
||||
e7340a6c0305d6eff98b0d6c3ea839a89fcaef8d97e64b7de5db31639306a25b tg/cables/no-uk.json
|
||||
1bfb4112cc86c1f14bd41fc5363eb044d7e482d6383150460c4558cfb43ff9b1 tg/cables/nuvem.json
|
||||
3a6cd2f362106e6aefcade51b245536ba7b9abe3f3f41be1493c8b5165a342f2 tg/cables/oceanic-tatitlek-telecommunications-enhancement-route-otter.json
|
||||
45244882d606a3dc79954bad77dac99344dbab560a1bc950433a04c4c2bb9a7d tg/cables/ogasawara-cable-network.json
|
||||
7e0da0633a1297bc8ee921dfbb4b917839e29a993b791b5528a1ba8d91974664 tg/cables/okinawa-cellular-cable.json
|
||||
24f085a08b2ad93cc6c475320ef9d39fe723c4d6a8fd09791ea5b371da060b7c tg/cables/okinawa-miyakojima-ishigaki.json
|
||||
9c83af83e63ae517ff1199e0e977adb1fbb1b7a26ea67b84f35ba97137f59ae8 tg/cables/okinawa-remote-islands.json
|
||||
abc82f8e5a1a40a22b4607fcf5ac2de6b4986689a78139d38749be85124d1b18 tg/cables/olaluz.json
|
||||
dad83f13011802b580dc818ea2955a39d93939f3b572276b621f10fee93ad8d9 tg/cables/olisipo.json
|
||||
eddc7f6fda5a3122e388f3a767faed125a967365a926006067012e708eb7acf8 tg/cables/oman-australia-cable-oac.json
|
||||
c210ff879ef95ae53fe20d1df074fb7fef38127252695cde95aa7b1cb7c57b23 tg/cables/omranepeg.json
|
||||
59841d13818a8b59a64bf4c74d20ef4fa5932407484a52e34375b76d4a326d51 tg/cables/oran-valencia-orval.json
|
||||
e2e8c21cbf6ff7362cba08fb29937dce18e5860a374e755ffaea5fabcb1b5ee2 tg/cables/orca.json
|
||||
a2677bc0b367bafeebb2db8cf22b4a140bcda647b6790e338219b842249a4081 tg/cables/orient-island-ring.json
|
||||
6da7bc96613debb5471f5cc54a4b3d77e2d15674e4a891e9862b1d0041441fd8 tg/cables/oskarshamn-visby.json
|
||||
e6f06a59ba3600808e864a63d7414f852a0f6f1ef51c9f92c3ede694616b078a tg/cables/oteglobe-kokkini-bari.json
|
||||
7d2d4581f0deaf2614341677968ce1fcd30aaa0921eb0cb8d7a958cfad7695c6 tg/cables/pacific-caribbean-cable-system-pccs.json
|
||||
b0f4d46daadc0f54bda85fb842303830edfaeb3226b1627d756de7a5a3b156ac tg/cables/pacific-crossing-1-pc-1.json
|
||||
58c424c11ebfb7e26419c4627e0e2666d33f7851a61f81f52bdb00c61320940b tg/cables/pacific-light-cable-network-plcn.json
|
||||
402d749cfe41a868c4a2aeed6f41db9d5607e1351eb7ca641fea18c3d83e0afb tg/cables/padang-tua-pejat.json
|
||||
ef93a7fbd2f3e5994165a02dce367bf61957d1e47cafdcf09126b1c716c0deed tg/cables/palapa-ring-east.json
|
||||
d1d0ac77252ec96e46ed68060502eb3f4749a15a4ac4b7c30efb8cbaa12d85b0 tg/cables/palapa-ring-middle.json
|
||||
0ee84ff8ff078864849c95d884cd1912bcd08bb755c32c79a2c2d255e489a7a8 tg/cables/palapa-ring-west.json
|
||||
23d3b55593f5a81f6191c81aa3c41ae560984d25bd9c4e13ce428f6de2a481c6 tg/cables/palawan-iloilo-cable-system.json
|
||||
4038e502e6024ec79375c3cf9752ce3409cae5c3318dd683f66faaec4a0f5cb1 tg/cables/pan-american-crossing-pac.json
|
||||
6b5dd8d8e5d4bd749e6342064ed39f7da18c48f268f7b2bbce169fcbe729daaf tg/cables/panam-south.json
|
||||
3cc971c8cdc592bc4fe6e1f73c2b22e31691c1a94c77592c94407413475f4824 tg/cables/pan-european-crossing-uk-belgium.json
|
||||
e88200d2d465861c43ff97b53c9e609b5c6733a464739add5a81023b8b123ecd tg/cables/pan-european-crossing-uk-ireland.json
|
||||
7312627ffe5d9bdd063ddc83d956445a98de9340cf09b1c93fc45d9e88f0cf16 tg/cables/paniolo-cable-network.json
|
||||
6afc39255bb0530396ab2d71f6d75d6d8ce553078c2d5316e39d76b892484955 tg/cables/pasela.json
|
||||
d031637514a4d50165e1df299790361e6c0ff6f5b9e549694105f609d5e80d4a tg/cables/pasuli.json
|
||||
6d6b12119a9746192936d42af752174544c727367254c9f324cf284492d12818 tg/cables/patara-2.json
|
||||
12917b3766d9e232439f668fa070c9a2c7e618675b6f9d526fb0321e8e5d1174 tg/cables/peace-cable.json
|
||||
11af323665956632e25f931d920d770143c773c7c32f9adfa6643bb7739dbe84 tg/cables/penbal-4.json
|
||||
53140e5c231c43137460a6abf359cd5b043a61d9694d3d512fe25bdec7a738db tg/cables/penbal-5.json
|
||||
647fa66363f1c190e8fd8dce22c631bc78156724bc00c501ed5130929c78a8ba tg/cables/pencan-8.json
|
||||
84666cd09fb17aac1701991cb06bf39c7cba9357d6407036ade976b29c60163a tg/cables/pencan-9.json
|
||||
17e9a63ee071fce1fc37beafc44516b5c25c737b55411c6cf1ab9143605a1381 tg/cables/persona.json
|
||||
dfa9c1c3dfddf25374de72814981dbab8313305d94fd6f417076b8de48219120 tg/cables/petal.json
|
||||
efff8ce85948e8bfa937f8fb6f61193f144b1050c924b6069f033054f0820aa0 tg/cables/petropavlovsk-kamchatsky---anadyr.json
|
||||
7cc370980f6d16968da5b2b33b51ad100616c6a4b7a447c9790e721cd16060a3 tg/cables/pgascom.json
|
||||
378a7cc0eb03527f3b75d7c340dd7f19869786718d0a88d2b8de957d4367ed41 tg/cables/philippine-domestic-submarine-cable-network-pdscn.json
|
||||
64403d70535d1a130bb7bfa6496b9b21670bc93f4cc0e6c4c8ca951728f43b76 tg/cables/piano-isole-minori.json
|
||||
05578b0c41c89b1f78e1edb0ada5ff3bdd9b6a2a37f48c76ec1f42527f366368 tg/cables/picot-1.json
|
||||
f56a964a848f1c1a0992e9e47d04718d18723bbbf88df0e8f40b129fd98d7a76 tg/cables/pipe-pacific-cable-1-ppc-1.json
|
||||
6998fa9ad4c0af2a09afd478c24b5f17526529032f92c75c5b156a0313120f9c tg/cables/pishgaman-oman-iran-poi-network.json
|
||||
490807860159016fe858bb454ffbf10cf7e03d9b872feaab14a182d0cf7378f0 tg/cables/pldt-domestic-fiber-optic-network-dfon.json
|
||||
c62ddf8679f37efdc2086db83483d28cec1431838ef0b39a07e19164d745c252 tg/cables/png-lng.json
|
||||
c9a5e1e1463a399a8b11d39ac74bea27022c02e8657b4e34f334703525d5710a tg/cables/polar-circle-cable.json
|
||||
2a20477627a7d13ce17398619dd65f4796971c1567c793299106c2a93b88a9b5 tg/cables/polar-express.json
|
||||
c1f3e15a53c30ada8074dcb8724b0c48d1211720439261676b0a6414e7bd796a tg/cables/portsmouth-ryde-10.json
|
||||
5cbff4977956289457cd4b3eff31aaed9c65b5572fa4340fcc7b4e52ede25396 tg/cables/portsmouth-ryde-11.json
|
||||
2adc0664848abb0d6e18adcc2ab7fa429aa6d6555c0526da4653fc5b047da5b3 tg/cables/poseidon.json
|
||||
66363fc446e5240cfcb84fae92972455cc8a4f8cebc61ab8dfaf0adcf8d7a0c1 tg/cables/prat.json
|
||||
e97f02289e52d5432409c5d3df2910ba38a1f6f4cea8aee7b17782930214a8b1 tg/cables/proa.json
|
||||
8bc84046298bab7d4fb747e494d8df7b6fb16aa18e6f0e7acdecaad1dd03194c tg/cables/project-waterworth.json
|
||||
304cd8f42c7c96f8d67d8b5bd5fdfca6d9a25c163887d2b8219475b4f8d30e3c tg/cables/projeto-amaznia-conectada-pac-01.json
|
||||
953890bc113fa2824e97f25aa7b5c0d9dfc150b20c95e820fce505112675ff2b tg/cables/projeto-amaznia-conectada-pac-02.json
|
||||
43bc90eb0e4b8ea597c0925ba80bfa2dba3945344a18df1bc1ec8ff0aab96ff2 tg/cables/pukpuk-1-cable-system.json
|
||||
00b03c67465538f1dcbeead3a7ab090304dcc143cc0523a0e7462f303dff7119 tg/cables/qatar-u-a-e-submarine-cable-system.json
|
||||
b70e1a08abc748fe92f96def1fed795a3238949a29b44d1a37047ff6d611dc07 tg/cables/qe-north.json
|
||||
bc28fa55ccb9021518b0286c2cbea533b2be0f16ef3c8157708c8817d05e4ec7 tg/cables/qe-south.json
|
||||
1207aaab7ec19aab97f96b5da0c754306db1a57eec79931956f255240e4be667 tg/cables/quintillion-subsea-cable-network.json
|
||||
6e44fa85e3362946ed8d55af1da91cfa2ccd3a67bc382e0f16c044c447534c5b tg/cables/r100-north.json
|
||||
7ff5932b9692cca7e06b288c3f56407958f1d8ba3aa0c7bd3f64affd6bf6a4f8 tg/cables/raman.json
|
||||
ae4eee55ca6cc2ecfbe83cab11d6b12047e5314b79495124e1f3cd4485295aed tg/cables/red2med.json
|
||||
6f7e93c277959945a59efe2fdec0045282b68d53d8ff0d9613e20293a4ccba35 tg/cables/red-hook-little-saint-james.json
|
||||
0ab5f9a4f3e6afd0666bb74a2f94a94d1dd81ee228c588ed6d03ae52ce9bb7d9 tg/cables/reunion.json
|
||||
25e43952491c9268b70e32a713267a1b05defee6cfcfe2abee774fc4c634bebb tg/cables/rising-8.json
|
||||
902fb0439bb0b819b98a57d8b221b63427b13c6e62b48bec99fc64b5a19fa85b tg/cables/rnne-rdvig.json
|
||||
3ce0f3b9e451f82b4db67942e9dd198a0683075ae020287a9910168473afa604 tg/cables/rockabill.json
|
||||
41a808e50ed7e691f0054c6066a61ba643e4e38a4b731ec7bb8d5e714e4e489c tg/cables/rompin-tioman-island.json
|
||||
c21930815f5300150a42963e3438b902e8c934fada1e526cea9b6a67526c8a49 tg/cables/romsar-2.json
|
||||
62cde3c96a9ca1ede137d30cbf50316d7b517e8b2d5cf31df78fea3343b5a6ad tg/cables/romulo.json
|
||||
0269525b28bc43fb35ee9696cfa38c72f3e039f5f1831a08e7fd4778a923c40f tg/cables/roquetas-melilla-cam.json
|
||||
cc4c58d7a374f385f51b9858db926612bab99e5a578673343062e474e034fe1b tg/cables/ruppione-isolella.json
|
||||
5fc9a709680fcf351f2f42ebdf5046376952ff0c8a3033c9c5a0fdcc2886301a tg/cables/russia-japan-cable-network-rjcn.json
|
||||
ad438a4221ed8f354360e729bc8e56683fd413320bfbaf56ba68cef630324828 tg/cables/saba-statia-cable-system-sscs.json
|
||||
dfcc1015214e2398933abb981bb97d0b0eafdea1264e31d31962362b87189edd tg/cables/safe.json
|
||||
3c01f05717fc6f76602b20d1377ed64a5705f7e38bf7a51748284fd63c985f6f tg/cables/sagres.json
|
||||
f294ec19f1d3d98f07433af2393a18128a8939d68ebb7690cb3c13fb155c8c74 tg/cables/sakhalin-kuril-islands-cable.json
|
||||
cca9f474ab3f73c02a1f4d2ed8e86ae8919f9c0563abff336c586d80c4dae9db tg/cables/samoa-american-samoa-sas.json
|
||||
374739accf122e23f6f4330ffddb2de997e52d17afcebd1cf04202cad665e385 tg/cables/san-andres-isla-tolu-submarine-cable-sait.json
|
||||
3f9d83c162c1309c933e16e0b86e574455d1640d23c1ceda548c95e6e506b2cb tg/cables/sape-labuan-bajo-ende-kupang.json
|
||||
2663466be6a1f4ee320e852bb2d1063794b56e297e94c5737154ba79e64e5f55 tg/cables/sarco.json
|
||||
880544fa4f6001bfe0b538694a21722756f265f6793b96606d50673339f6f3f0 tg/cables/sat-3wasc.json
|
||||
38546892e57524e60ee7df47bc1992bb9111d1bf1d0f7714063769c6c7045c46 tg/cables/saudi-arabia-sudan-1-sas-1.json
|
||||
c09fad26ad38f86748b8014153b64d5409c7a1d4d282cd5f7de3c26407107ac8 tg/cables/saudi-arabia-sudan-2-sas-2.json
|
||||
9baa603fe8e2322f13b3a49aaa112d924fb35908c421e119ceb93873181a90d3 tg/cables/saudi-vision.json
|
||||
9c706f53d2ed11966187b1b7f5091a348cf6acad6b9349d6e283cf8afd961268 tg/cables/scandinavian-ring-north.json
|
||||
52b78d6e0bbc71abac16b765e3bf65061574be73de16d05e45e8c3a0adacd348 tg/cables/scandinavian-ring-south.json
|
||||
4f0d3aab21e696a561e232f07ba2676766bae1fc2ab03081ec28616d782c1913 tg/cables/scotland-northern-ireland-3.json
|
||||
dae42c0a2a82ae114c612df2a914497f2d9b4dfe9ec32d725ced1531770019f9 tg/cables/scotland-northern-ireland-4.json
|
||||
792ef8963b5d50ae4f9339574825cab6be5ea2f55ae972c13f9aa0408d38b2bf tg/cables/scylla.json
|
||||
de9cb072e3d6ed6b0afa3c63fb81e746d6342c7283d4140cee7328058c00c4b0 tg/cables/sea2shore.json
|
||||
f9ed73b957de7e07e8f5900ebe923a33358e3e727c061da3a564b26aa00e7bff tg/cables/seabras-1.json
|
||||
2ba09a9a27b10128d1e3af9200712822242acaf64d5374d3b19a8f127a5f5ceb tg/cables/seacomtata-tgn-eurasia.json
|
||||
85b6c10b1bc613c5dac78d1fe656e9ac1719a20126d5256929e337c85d16ba0a tg/cables/sea-h2x.json
|
||||
54ecbfd509640dba1725f445530f67812733692cc7dfffa37d395a3e7890fba2 tg/cables/sealink.json
|
||||
ef19519cc0421aaf85041ef7b4ec81bf5ab8de8a1ab178c5bf06bb1943acfdd1 tg/cables/sealink-south.json
|
||||
dda614e3f89007d09e34bf026d5fec6e63530b34e578ad687a77139d59747d95 tg/cables/seamewe-4.json
|
||||
94acbef1fb86a140003bfe7397f9dc258353ca56ab4b7a0295f78da3d889738a tg/cables/seamewe-5.json
|
||||
dc8f97722e125a5e9ee342f0712eecc645a4c5bc59890768a4a111ec71c7a28c tg/cables/seamewe-6.json
|
||||
6b3de44a77b64a74215aaf994331996e850855933b458c2a9834f5f0d70203ea tg/cables/sea-us.json
|
||||
c0989009411a7eee5e73f636f5ba2d258937dab36d7b021a5d2b82173f9361d5 tg/cables/seax-1.json
|
||||
a565a0ee2aeec05c5d1a0251a2e1d068de7f1a2e59e9db509be908e108249f6f tg/cables/segunda-fos-canal-de-chacao.json
|
||||
44e72cd124c496362ff8eb6fb665bc249af94c7e4169a273970e9e94bfc63e29 tg/cables/senegal-horn-of-africa-regional-express-share-cable.json
|
||||
acedb0c8b88e5338d98dfb7108002059cc512acf919c014828fa86430343a549 tg/cables/seychelles-to-east-africa-system-seas.json
|
||||
3651d71c3058e79e306490d7d1b39c709419bfb9a171261a2d94415fd59e9328 tg/cables/sharm-el-sheikhtaba.json
|
||||
f2f189e0cfb8ce274288103438986d31ae5a7b4fc8c15d6d7df2ea073b85d3ac tg/cables/shefa-2.json
|
||||
2570e8796417bfd64981ae0773bae372589cc37f701cf96d74828956b3b3fe6c tg/cables/sihanoukville-hong-kong-shv-hk.json
|
||||
d00796f6351e1b3a573a8fa7764981995819df14d75db75786a3175e8f444c67 tg/cables/silphium.json
|
||||
a4f9c8335007f9196504e8c1cea81f4d084ff848ea2a92309786c390b4a40d97 tg/cables/sint-maarten-puerto-rico-network-one-smpr-1.json
|
||||
62ea8e202b96ccacbb8578957331039ee57df6691f85baf850158898b39d3084 tg/cables/sir-abu-nuayr-cable.json
|
||||
6945b8279e6f4bb2e032207f014f1fcb25af707a562494137c4939e65460ac08 tg/cables/sirius-north.json
|
||||
67e9c0376d4d39f290b4a42c1912a3c2c278be77bf0ff956b8b2931e34be8d2c tg/cables/sirius-south.json
|
||||
941a4d92ecba8229a5080d43aafba42a67df9a6b3e2c2a7121da9eae15e1eb05 tg/cables/sistem-kabel-rakyat-1malaysia-skr1m.json
|
||||
dc56dca65326f4287ecb4b76c5fd2d1c7049c68a91c7dd9682cbb8b55199b70c tg/cables/sjjk.json
|
||||
6856c435df859e17211b44f0ab004eac1889702efbb34f1e60c262c133f1d7a9 tg/cables/skagenfiber-west.json
|
||||
b8034e163b60ff1ed39c3db82fb9cb9bacc006046692f7ff6075651b3d58f1be tg/cables/skagerrak-4.json
|
||||
4c5db4441c23b248a72e8eb7b89f1b005c10ca1cc9fee32d918dc2ce25616ca7 tg/cables/smpcs-packet-1.json
|
||||
2c721a33c87e9d7c807192b4c25513953cb0455397be9dbf7abaa074ca3b7a59 tg/cables/smpcs-packet-2.json
|
||||
99682917cd3177f27f1d4932a31c10ea8fc5472a17dc9ca4a09080c811860eeb tg/cables/solas.json
|
||||
9f6d4b3e3adcb00497b64018f74358e8d552facf2a58f769113012e1cb0d11d9 tg/cables/sol.json
|
||||
fce5f3b6b595da5913c042432a4cd82d99fae7891ece774b64ba1c5b9c574372 tg/cables/sorsogon-samar-submarine-fiber-optical-interconnection-project-sssfoip.json
|
||||
dea815eb6a2305cb81e29b2cd785c0a9d2ee617d9a8bb51e1598c41a6cb39497 tg/cables/south-america-1-sam-1.json
|
||||
b943adb31aedf1c1f6246d1141733c1a5e2be45e80167aae2cf086039f8b69f3 tg/cables/south-american-crossing-sac.json
|
||||
9b6d3afa76a840d686d575d989df0fcd28b67a09e2f9d113a5aa2a6bd889b468 tg/cables/south-atlantic-cable-system-sacs.json
|
||||
13ab14b91d3a7bbb440e215d1f3c2336ed7c96992d28cddd1b8f53e63cab6b44 tg/cables/south-atlantic-inter-link-sail.json
|
||||
d6094a01f017349be6a17e008d718ad5403764d3ab9232c3b6734572ba52d659 tg/cables/southeast-asia-japan-cable-2-sjc2.json
|
||||
9237ebe1e0a97dbddf568481ca4bdf3758de188880161bd1e9604db1cb73ceab tg/cables/southeast-asia-japan-cable-sjc.json
|
||||
2f3c4225d471f9391b80bcf6337aa7c3fc831ec6b5a220752f6109fab6186ca9 tg/cables/southern-caribbean-fiber.json
|
||||
53636e158bf3107b2bc200cc36087d5a92b97cc9bf2c5edc9f7c104acbb61fd4 tg/cables/southern-cross-cable-network-sccn.json
|
||||
635e9d1a84be31fc2defa06e47e4dd1c302a855c2e86ec1632e17dd4e25837ab tg/cables/southern-cross-next.json
|
||||
e6431388bec856db5c967fee09ed3248a12f9540c912d28f55cf817719f0b58e tg/cables/south-pacific-cable-system-spcsmistral.json
|
||||
72e7b85181a127f80b3cef68029cc015e6a6827f40e17c788d7c8bf4c966b0b6 tg/cables/sovetskaya-gavan-ilyinskoye.json
|
||||
4c13a8f74fbaa2228c5b45b0c6a2341524db7568e617683646583a5e96eb120e tg/cables/sovetskaya-gavan-uglegorsk.json
|
||||
61d7e19c63d6e9ddc08edf6806f3467f74655c2452f919c65b440c9e60f4b4bd tg/cables/staonuk.json
|
||||
45a8478bd93e6a2292261cc23580310b4dc8cf6d3a9e83cf9716a0aedd143e22 tg/cables/sto-hel-one.json
|
||||
5d2f333b7f54eb5d2972509b8d6811d8cf3d15f64fbb151bc5eebdbd0e472cb3 tg/cables/st-pierre-and-miquelon-cable.json
|
||||
299924b2cc0cc26e3959bc399c38bd1858ab5a3d1fc324c233190ce995686d37 tg/cables/strategic-evolution-underwater-link-seul.json
|
||||
bcd86244f153c13a48a2b8c1213822251e5640f40fbd3586ac82210c0614ab00 tg/cables/st-thomas-st-croix-system.json
|
||||
4942f1e92ff588c054a91ccd602fbb81bc41f6329b6b6eb6d702261d3f36ddaf tg/cables/s-u-b-cable-system.json
|
||||
724972b2042796482e0d7ddb65b0d9dde86516d900faf6a586cdf19f8ed6e8d2 tg/cables/subcan-link-1.json
|
||||
8e892520193e1b6b7be0898a6ad7621642926ad3be9f5b91e0ddebc4ab0a9f67 tg/cables/subcan-link-2.json
|
||||
f06acb4b3dfd5ba60b1cd03e0daaa2d90775ec0cd47234a736c46b788f6beba0 tg/cables/submarine-cable-in-the-philippines-scip.json
|
||||
9fc1b7341cd9203f6424750aa4c9455a9b1aa4d79ba50a346b04b6e7f3d307cd tg/cables/sumatera-bangka-cable-system-sbcs.json
|
||||
5a32ae080079e6bb6c3a3498032872ad784b38f73279413ebe4342e651c95710 tg/cables/sunoque-iii.json
|
||||
5441ff649410518c6f1777840b9dfe6a22f3f13cc6248c0ec371e9012231e5c2 tg/cables/sunoque-ii.json
|
||||
9669617e6f11559046b50eae9b05ec92c4b5168bca7a40e728f4d6756fe14729 tg/cables/sunoque-i.json
|
||||
a623dca74ac68f886de966ccc704627e61e6cf40886b6180a71e37a060b696ec tg/cables/suriname-guyana-submarine-cable-system-sg-scs.json
|
||||
06efbbb4396dd79bd8f8bd22e81aa83b0eeb4ff047baa3ba597a65059230756a tg/cables/svalbard-undersea-cable-system.json
|
||||
7ca243e19aa9922a4994a42d01bc7ae93719a05f2603d8e5dd7282b37ead6f9f tg/cables/sweden-estonia-ee-s-1.json
|
||||
f763db5a6a4e14d18d902567f657a3be135d02dfdef0e5d796f6f0879ec5ffda tg/cables/sweden-latvia.json
|
||||
dec05438f375b8d49eb245b19e13c21bd74330a4ab328e41f3e82b613d1bcef0 tg/cables/sx-tasman-express-sx-tx.json
|
||||
aaa4b2cb12ff84e4f870068d45ec105f9bb729659d13efd976dd252f11583371 tg/cables/sydney-melbourne-adelaide-perth-smap.json
|
||||
7e774e23dba3dd2b199382dcae372aa81d3026ecf3b4b2b1128ce8c407e801b1 tg/cables/t3.json
|
||||
5023e406e0bfd55997c3900ba9f1609f53daec95c3bb03025cc99100c2f0309d tg/cables/taba-aqaba.json
|
||||
d5e4b551be32633ee9652c240bd31ce4138581016cd1e05958cc7be05a3c50cc tg/cables/tabua.json
|
||||
fbaf88076b50dbe3963704668e71524e91c097be5cf159f12b0e40e70f8241a7 tg/cables/taihei.json
|
||||
8538b02ce058f93f6ea510f5a28d22f28354b86aa8c983d7091acba9fd6ffda6 tg/cables/taino-carib.json
|
||||
5fdae49e4ffead8138b77c54bb0e9a3e4271af21efbc105e546dee06d1f1a7ce tg/cables/taiwan-matsu-no-4.json
|
||||
b1fc4a580feb5c4621c3b9084aaf0e5e8fba7e2aa1945c66c6fe7ded31c77c74 tg/cables/taiwan-penghu-kinmen-matsu-no-2-tpkm2.json
|
||||
fd2fb6c0f0d0b762ebb78807feac1adfa7afc4446321fc8a1e6e39fbda221ff7 tg/cables/taiwan-penghu-kinmen-matsu-no-3-tpkm3.json
|
||||
38aff360d3a583b539a26d179cdaa053484c897023d935fc9785990f6d09a29c tg/cables/taiwan-strait-express-1-tse-1.json
|
||||
eb1833ffb25ab3ff40be1288d2c10ec8b1f9b1154c823a0010226c53ac2587db tg/cables/talaylink.json
|
||||
bd5a1114200055d200bac40147f6c81f82d9ac61ecbb277296aa99ec7e209aed tg/cables/tam-1.json
|
||||
02798edb5c6380447240b19d912f697e1f1a63f1f7dfcbc6aa137732c4c8b5ed tg/cables/tampnet-north.json
|
||||
ddb1177882685bec81eaf00a7125dcec721d2d9ae8b923c21ab87d76f549f37b tg/cables/tampnet-south.json
|
||||
97f55d6e5e3d36837c35b18d4e849b1d279280568fd3115b53f980f267f114bc tg/cables/tamtam.json
|
||||
9ca878a705a49f0da11361748c3876174e2c9946a3ae127e787ebe0c61c79357 tg/cables/tangerine.json
|
||||
58115c699259bd564c4346e98c2b8a2bbf6f9b96bd3bf8c688f55baf8ed722a1 tg/cables/tanjung-pandan-sungai-kakap.json
|
||||
d9065f9227235726c0679a586ca71c592c717d0a9603c735d69daa9f32d15d28 tg/cables/tannat.json
|
||||
d25e70fb08bcc84c50f505758c1a633ba99fa3c6835a55a395b84b151e37efa1 tg/cables/tarakan-selor-cable-system-tscs.json
|
||||
7c97adde84f16e055c9106975dd107f20a562c42e638ff23e9e6376a8a293f9a tg/cables/tasman-global-access-tga-cable.json
|
||||
a102c74a5313e73b09659655d149fccfbbb30ada0f02aee22c5574a71980c169 tg/cables/tasman-ring-network-phase-1.json
|
||||
2a17b5200dc3191c1b28bde6914fc17a4a87a5fd73283c7a4cd1187fcecbc9dd tg/cables/tata-tgn-atlantic-south.json
|
||||
eb74e300f431a73092679ea8a91772fa77f4f30d89e9650d2f2e052ea0272b87 tg/cables/tata-tgn-gulf.json
|
||||
824c846e48ed15941cdf2e6648c9f58e7388a19ab2df172ae29616ad91f7deba tg/cables/tata-tgn-intra-asia-tgn-ia.json
|
||||
d6f48684ecbb4336c8758a81d49ae90526ee8a4ef6f8cda2f956493a8ac461da tg/cables/tata-tgn-pacific.json
|
||||
566b1a90b3faf265a984242cbcafa9d88df61ff3eec49b44458d644936fd3368 tg/cables/tata-tgn-tata-indicom.json
|
||||
bcdad46b1f6d01782a5c1f9553bd203791b4976dd8eb61f1c1da7e0a4d94890c tg/cables/tata-tgn-western-europe.json
|
||||
47a76d51096aa9deccf9d207a76e5f13723b5eaf7fd5ce7d1273cce57482d534 tg/cables/tautira-teahupoo.json
|
||||
118ea56331148db911d4a4bb1c9b6000bda3e6b0520fb1a2dbaf06e8bf246b2e tg/cables/tegopa.json
|
||||
2242faa71afec5468fbbcd86de7fdd369d07c5a751fac53095076402b891dbd6 tg/cables/teide.json
|
||||
ecdadac2072d308936d2156db21d4f7586cd6f4aed1f2a5379242c01c89d99f9 tg/cables/telstra-endeavour.json
|
||||
0e06f18ddc099b79bed61bdbd0f84641bb287c81814ee43f0886378b2f562c8a tg/cables/tenerife-gran-canaria.json
|
||||
6c1179a7856c9e645ce02b214902a25dced6f0bde6ed24b1f3a0f06257924bc0 tg/cables/tenerife-la-palma.json
|
||||
6f2582b7d48788d6b06464e8d41784689eb591836a2c8343ffb8d24c4b5b8dd5 tg/cables/te-northtgn-eurasiaseacomalexandrosmedex.json
|
||||
0bd537f4a55b3dea19a009592b74a0900af9d92617fc74692db8741b4436cd48 tg/cables/terra-sw.json
|
||||
c92081ce7926c05ed27bf50981bcf877e20fcf2cc4825e5a628eb776cf217991 tg/cables/thailand-domestic-submarine-cable-network-tdscn.json
|
||||
cd6bb01cd3b397c75db5f0ecae43776fef9ee2d47e6df604d9d8a682d77ed110 tg/cables/thailand-indonesia-singapore-tis.json
|
||||
18d389e60b2d58f883d1847dbd42a790dfad3f46853c4bf3f1710b81d400c49b tg/cables/the-east-african-marine-system-teams.json
|
||||
cabc3e2fe6a14d1c06afa2119851359ed89f01e1641ce2bc8858565063ec1dc4 tg/cables/thetis-express.json
|
||||
aa27e9235ae0ae13193bd2378d9bd0de60665d603a979801b3131bd35e416222 tg/cables/thetis.json
|
||||
90cafb2ebcdc8c4c3b90afcb22c19454432630a2b859df94062c7864b328ef0f tg/cables/tikal-amx3.json
|
||||
0361fde1bb2921b3325aeb0bce98d1dad2519d1742fd8cad99f2ff8f3e51e7b9 tg/cables/timor-leste-south-submarine-cable-tlssc.json
|
||||
bcfb93f35c1055dbb2276657c27cfa0f253ae4705b03e058d2d27d7431ca776c tg/cables/tko-connect.json
|
||||
e16c32846da5b9b81410c32de3887815cca5e2bec805299afe9593c037fdf390 tg/cables/tmx5.json
|
||||
cdaa26f78b97ebee13df29ca91e04325567fa248bc5e39c169ce746066aa0b77 tg/cables/tobrok-emasaed-cable-system.json
|
||||
5b892b943ef9f2bdfbcc12e311f476e304e063182050e1b77495b11d426bfa65 tg/cables/tokelau-submarine-cable.json
|
||||
3bc0cbdd0959c647c8405f667d61dc389b95d7cfa45009aa14df760ab2d20358 tg/cables/tonga-cable.json
|
||||
0beacccbfebc4eee5e102b4e71db009e383d6ae52d0b381fa0dac47f8f86dfb6 tg/cables/tonga-domestic-cable-extension-tdce.json
|
||||
2c039c2727a9098ad7d9b6c15c2c941d5d057c96b1bafa130848b58626057547 tg/cables/topaz.json
|
||||
826142871c7c78e1b402e37e54b2cc04304ea38f2fe1639f008cbceb2e9b3625 tg/cables/tpu.json
|
||||
eb9587122f81d00c3c2f594a7dc70fd73d7d42775dd557449d83ce0ffc9161dc tg/cables/trans-adriatic-express-tae.json
|
||||
abeebb025bd35d49a08cb228609a7750b0ca9b3364bf94aa44eaaaf140688f42 tg/cables/transcan-2.json
|
||||
8b80d8823de0a515486cd50358d9cee54e2e1fb1a58961f9ac96519e1996f6f9 tg/cables/transcan-3.json
|
||||
2dca2384861cab57f5e7a5aac672925559b07c9230addba73b0e0bf58a036c8f tg/cables/trans-caspian-fiber-optic-cable.json
|
||||
8f28c4e43167b090f327442fcac0d70db6870a916e49cee7c5456cf646667540 tg/cables/trans-global-cable-system-tgcs.json
|
||||
3296a6ee3d25f3fbe6b3a4f974ea184cb66968e8ae501e09bfd04ef63380c702 tg/cables/trans-pacific-express-tpe-cable-system.json
|
||||
6b26d3f9874511f5378ed1555d18d56fd1f9898b0b6cbc18379f83d0e9fa6386 tg/cables/transworld-tw1.json
|
||||
ffa4f27b9b637c35a2315e6600cb2b5505f611638c478c6fa625f9aad5cc863d tg/cables/tt1.json
|
||||
445a45b04a81ff645b2b67687107f264610065e9947a6b6fd002a1bfab270589 tg/cables/tui-samoa.json
|
||||
1a09892ee4962053e6ce92a6467aee2dcf11314973cab970a7e98abbec70673a tg/cables/turcyos-1.json
|
||||
3e950905b48980ace0ffc917b28d42a7b8f682dcb98b644e972562e176013ff9 tg/cables/turcyos-2.json
|
||||
70558d86f3f02d1fdd3cf983b8254928ea0d3018a2eed1c2c9a7e8b3ffd5f61c tg/cables/tverrlinken.json
|
||||
cbbea0ad27400c05e6f4af4237ef245c4370916e0ae1fc5c7559bd3cc79fb8c8 tg/cables/uae-iran.json
|
||||
edfde848eb28dc8af5f5b647686b1c536626d222f03691e8db64e15f3d553f4d tg/cables/ugarit.json
|
||||
d3f0aae3e0680ca7573fdd26593d64638493c535b71e2121f25c68f0fa6d3307 tg/cables/uk-channel-islands-7.json
|
||||
24b3cb65433fd217b0a2d8c8fded3e4d21dc803078ce61a2b09b889ff26ab418 tg/cables/uk-channel-islands-8.json
|
||||
daf40016ac0d60872a2f4ac702ab1036d90bbaf42e3ac8413ee92e44ca6d0841 tg/cables/ulleung-mainland-2.json
|
||||
16f396d4f1c65b984fc5d83d666d187a2303670d661ba0ebec3d09667e7d208e tg/cables/ultramar-ge.json
|
||||
276b7b16ae7beec0e77fca03010a4c00850d20f853610738b7ebd5f8ddd0376e tg/cables/ulysses-2.json
|
||||
85854dc2a397e1b4272e06cce0362ee54663f3f7701004cd0e94ab115a398330 tg/cables/umoja.json
|
||||
8ab6abe20cfcc506bef070d6b90cfead08df89c8494264be91dc588cc7495e98 tg/cables/umo.json
|
||||
4bea55a250829572b0de6b60556fa4d5323eb5cfb02611f95e6d7f19c65b278d tg/cables/unisur.json
|
||||
a23379d0c2c42fab7a082a5b0cb6074520e0419745c9f06175fdf1463af5af00 tg/cables/unitel-north-submarine-cable-unsc.json
|
||||
e40692a4b5b7290f2d46c848bac4b655f12af7f1d89851fadf1d7933b9b3ebd2 tg/cables/unitirreno.json
|
||||
c5692e43e1814a1a55c20a8f3a6788c2a1ad89815cd91e9c4b5d40ffc9ea40a5 tg/cables/unity.json
|
||||
822ed7bb404dbb9147971ecb629e00f8f82491935a616b1eb6f69d690984f02b tg/cables/vaka.json
|
||||
9e8d66981566bf50a2a95de8a6bd1a7dbf11bb38a2b8d04ef035c329ea340955 tg/cables/vancouver-bowen-island-vancouver-island.json
|
||||
39ffd3676e03588fb3ad099aa571df0fc70729e1ddb9d0c9320f34e3074401d5 tg/cables/venezuelan-festoon.json
|
||||
46b4f530ad536c07b5bc7e06ad2dd922fb6dd76bdcd14fc2c8432292f237742f tg/cables/verena.json
|
||||
14099c1749868d15a7b2a5fb91ab315debda206abc2dcc1bdbeca2c17b4f21ae tg/cables/vietnam-singapore-cable-system-vts.json
|
||||
5c95d8e8ddf9e6a9fba66f233b3a2641a1ac67ba5c05f62d1f40383106f10a41 tg/cables/vodafone-greece-domestic.json
|
||||
cd238ad3e6e43ed9a45a0f7a66a469be6ed8a43b02e88d6a2845297140bba0a8 tg/cables/vstervik-visby.json
|
||||
eb72a46995275911fdde20926cf285d40b08d8648bc642aa0784e73fc3808e37 tg/cables/west-africa-cable-system-wacs.json
|
||||
83998fd97c66c775c255b846513c486c3fd0f3dae3d7d25a14610dc2d5e4cc6e tg/cables/whidbey-island-camano-island.json
|
||||
e0e534b60a123c2f9e6180af9cedaf9ae1633760078825ea0696c521e3969e41 tg/cables/whidbey-island-everett.json
|
||||
a7984c8ae0490cfc5ec5f9b0a43e347be6186a8eaec5a442192c0bcd1ed2796a tg/cables/whidbey-island-hat-island.json
|
||||
a572a096b26479e438ab5d14008440937865394a2e9379fa2e165a3f68565a15 tg/cables/whidbey-island-seattle.json
|
||||
fbc51202f5aad21e89e25aed4cab7a76db02caa5d8e6e28be90c56f3f46d29d7 tg/cables/x-link-submarine-cable.json
|
||||
7bcf9d31e193c8fd7872a31f248ead673ea70f484354e07a07a1d363b22d432f tg/cables/yellow.json
|
||||
a5b0b255c56ba4c3157369a4503111f0d3c2fd3d469d991c3632297fbc6935b0 tg/cables/yui.json
|
||||
e6fd3f911fada76daf5ee3dfd03764238a74202b379ed714b50b34fcd0e97290 tg/cables/yuza-tobishima.json
|
||||
bc2495a297d0b2a839853dae42b3bca1b70a3c7f4be3f195da0abeb232069e73 tg/cables/zayo-festoon.json
|
||||
40cf8dec509ee26dcd2caa7328ea09651e05f7f36ffcc0d74f055ebcc127305e tg/cables/zeus.json
|
||||
418aa24a019d7ebb74b97f21f19975cf38f999337d801008415f3d47f7c3c779 tg/landing-point-geo.json
|
||||
7c97adde84f16e055c9106975dd107f20a562c42e638ff23e9e6376a8a293f9a tg/tga.json
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,5 @@
|
||||
# Python 3.11+. Versions used for the published results in brackets.
|
||||
numpy>=2.2 # [2.2.4; flatfit.py ran with 2.5.4]
|
||||
scipy>=1.15 # [1.15.3]
|
||||
matplotlib>=3.8 # [3.10.1] network.py (point-in-polygon only)
|
||||
cvxpy>=1.5 # [1.9.3, Clarabel solver] flatfit.py only
|
||||
+1042
File diff suppressed because one or more lines are too long
+334
@@ -0,0 +1,334 @@
|
||||
"""Best possible pole-centred flat map.
|
||||
|
||||
Family tested: every city keeps its true distance from the North Pole
|
||||
(r = 111.2 km per degree of colatitude, as on the AE map). Cities at or north
|
||||
of PIN_LAT stay where the AE map draws them. Every city south of PIN_LAT may
|
||||
move east or west by up to D degrees from its true longitude. On a flat disc
|
||||
with a circling sun a city's angle is its solar time, so D degrees is 4*D
|
||||
minutes of sundial error.
|
||||
|
||||
A measured RTT T caps the straight-line distance at U = T*v/2 + slack, which
|
||||
caps the angle between two cities: cos(dtheta) >= (ri^2 + rj^2 - U^2) / (2 ri rj)
|
||||
|
||||
Pinned partners give each free city an allowed window; free pairs give
|
||||
|theta_i - theta_j - 360k| <= alpha. With one k per pair this is a system of
|
||||
difference constraints, solved exactly with Bellman-Ford.
|
||||
|
||||
Two answers per setting:
|
||||
lower bound largest D whose *relaxed* system (split windows replaced by
|
||||
their hull, ambiguous wraps dropped) is still infeasible.
|
||||
Relaxing only removes constraints, so no arrangement with a
|
||||
smaller shift exists.
|
||||
upper bound smallest D for which an arrangement was found and then checked
|
||||
against every measured pair.
|
||||
|
||||
python3 solver.py -> data/solver.json
|
||||
"""
|
||||
import glob, json, math
|
||||
from collections import defaultdict
|
||||
from models import R, C_FIBER, C_VACUUM
|
||||
|
||||
|
||||
def load_wn():
|
||||
d = json.load(open("data/wn_clean.json"))
|
||||
sites = {k: (v["name"], v["lat"], v["lon"]) for k, v in d["servers"].items()}
|
||||
pairs = [(r["a"], r["b"], r["rtt"] + 1.0, 200.0, f"{r['rtt']:.1f} ms") for r in d["pairs"]]
|
||||
return sites, pairs
|
||||
|
||||
|
||||
def load_live():
|
||||
"""Live grid anchors as extra sites (prefixed L:), best rtt + local allowance per pair."""
|
||||
from measure import TARGETS
|
||||
alias = {"Sao Paulo": "São Paulo"}
|
||||
sites = {"L:" + t[0]: (t[0] + " (live)", t[3], t[4]) for t in TARGETS}
|
||||
best = {}
|
||||
for f in sorted(glob.glob("data/live_*.json")):
|
||||
cells = json.load(open(f))["cells"]
|
||||
local = {(c["src_city"], c["src_network"]): c["min"] for c in cells
|
||||
if c["min"] is not None and c["dst_city"] == alias.get(c["src_city"], c["src_city"])}
|
||||
for c in cells:
|
||||
s = alias.get(c["src_city"], c["src_city"])
|
||||
loc = local.get((c["src_city"], c["src_network"]))
|
||||
if c["min"] is None or loc is None or s == c["dst_city"]:
|
||||
continue
|
||||
k = tuple(sorted(("L:" + s, "L:" + c["dst_city"])))
|
||||
if k not in best or c["min"] + loc < best[k][0]:
|
||||
best[k] = (c["min"] + loc, c["min"], loc)
|
||||
pairs = [(a, b, t, 25.0, f"{m:.1f} + {l:.1f} ms") for (a, b), (t, m, l) in best.items()]
|
||||
return sites, pairs
|
||||
|
||||
|
||||
def load_all():
|
||||
s1, p1 = load_wn()
|
||||
s2, p2 = load_live()
|
||||
return {**s1, **s2}, p1 + p2
|
||||
|
||||
|
||||
def radius(lat):
|
||||
return R * math.radians(90 - lat)
|
||||
|
||||
|
||||
def alpha_deg(ri, rj, U):
|
||||
k = (ri * ri + rj * rj - U * U) / (2 * ri * rj)
|
||||
if k <= -1:
|
||||
return None
|
||||
return -1.0 if k > 1 else math.degrees(math.acos(k))
|
||||
|
||||
|
||||
def build(sites, pairs, speed, pin_lat, D, fixed_k=None, pinned_piece=None):
|
||||
"""Returns (status, theta|cycle, info). status in feasible/infeasible."""
|
||||
fixed_k = fixed_k or {}
|
||||
pinned_piece = pinned_piece or {}
|
||||
lon = {k: v[2] for k, v in sites.items()}
|
||||
r = {k: radius(v[1]) for k, v in sites.items()}
|
||||
pinned = {k for k, v in sites.items() if v[1] >= pin_lat}
|
||||
win = {f: [lon[f] - D, lon[f] + D] for f in sites if f not in pinned}
|
||||
why = {f: [("sun", None, D), ("sun", None, D)] for f in win}
|
||||
ff = []
|
||||
for a, b, T, slack, label in pairs:
|
||||
U = T * speed * C_FIBER / 2000 + slack
|
||||
al = alpha_deg(r[a], r[b], U)
|
||||
if al is None or (a in pinned and b in pinned):
|
||||
continue
|
||||
if al < 0:
|
||||
return "infeasible", [("radial", a, b, label)], None
|
||||
if a in pinned or b in pinned:
|
||||
p, f = (a, b) if a in pinned else (b, a)
|
||||
lo, hi = win[f]
|
||||
pieces = []
|
||||
for k in range(-2, 3):
|
||||
c = lon[p] + 360 * k
|
||||
x0, x1 = max(lo, c - al), min(hi, c + al)
|
||||
if x0 <= x1:
|
||||
pieces.append((x0, x1))
|
||||
if not pieces:
|
||||
return "infeasible", [("arc", f, p, label, al, lo, hi)], why
|
||||
if (f, p) in pinned_piece:
|
||||
want = pinned_piece[(f, p)]
|
||||
pieces = [min(pieces, key=lambda q: 0 if q[0] <= want <= q[1] else min(abs(want - q[0]), abs(want - q[1])))]
|
||||
n0, n1 = min(q[0] for q in pieces), max(q[1] for q in pieces) # hull
|
||||
if n0 > lo:
|
||||
win[f][0], why[f][0] = n0, (p, label, al)
|
||||
if n1 < hi:
|
||||
win[f][1], why[f][1] = n1, (p, label, al)
|
||||
else:
|
||||
ff.append((a, b, al, label))
|
||||
|
||||
edges = []
|
||||
for f, (lo, hi) in win.items():
|
||||
edges.append(("z", f, hi, ("hi", f)))
|
||||
edges.append((f, "z", -lo, ("lo", f)))
|
||||
dropped = 0
|
||||
for a, b, al, label in ff:
|
||||
(la, ha), (lb, hb) = win[a], win[b]
|
||||
ks = [k for k in range(-2, 3) if la - hb - al <= 360 * k <= ha - lb + al]
|
||||
if not ks:
|
||||
return "infeasible", [("pairwin", a, b, label, al)], why
|
||||
if (a, b) in fixed_k:
|
||||
ks = [fixed_k[(a, b)]] if fixed_k[(a, b)] in ks else []
|
||||
if not ks:
|
||||
return "unknown", None, why
|
||||
if len(ks) > 1:
|
||||
dropped += 1
|
||||
continue
|
||||
k = ks[0]
|
||||
edges.append((b, a, al + 360 * k, ("pair", a, b, label, al)))
|
||||
edges.append((a, b, al - 360 * k, ("pair", a, b, label, al)))
|
||||
|
||||
nodes = ["z"] + list(win)
|
||||
dist = dict.fromkeys(nodes, 0.0)
|
||||
pred = dict.fromkeys(nodes)
|
||||
for _ in range(len(nodes)):
|
||||
x = None
|
||||
for u, v, w, meta in edges:
|
||||
if dist[u] + w < dist[v] - 1e-9:
|
||||
dist[v], pred[v], x = dist[u] + w, (u, meta, w), v
|
||||
if x is None:
|
||||
return "feasible", {f: dist[f] - dist["z"] for f in win}, dict(why=why, win=win, dropped=dropped)
|
||||
for _ in range(len(nodes)):
|
||||
x = pred[x][0]
|
||||
cyc, v = [], x
|
||||
while True:
|
||||
u, meta, w = pred[v]
|
||||
cyc.append((u, v, w, meta))
|
||||
v = u
|
||||
if v == x:
|
||||
break
|
||||
return "infeasible", cyc[::-1], dict(why=why, win=win)
|
||||
|
||||
|
||||
def violations(sites, pairs, speed, pin_lat, theta):
|
||||
pos = {}
|
||||
for k, (n, lat, lon) in sites.items():
|
||||
t = math.radians(theta.get(k, lon))
|
||||
rr = radius(lat)
|
||||
pos[k] = (rr * math.sin(t), -rr * math.cos(t))
|
||||
bad = []
|
||||
for a, b, T, slack, label in pairs:
|
||||
if sites[a][1] >= pin_lat and sites[b][1] >= pin_lat:
|
||||
continue
|
||||
U = T * speed * C_FIBER / 2000 + slack
|
||||
if math.dist(pos[a], pos[b]) > U + 1e-6:
|
||||
bad.append((a, b))
|
||||
return bad
|
||||
|
||||
|
||||
def solve(sites, pairs, speed, pin_lat, D, rounds=60):
|
||||
"""'infeasible' (rigorous), 'feasible' (verified on every pair), or 'unknown'."""
|
||||
status, sol, info = build(sites, pairs, speed, pin_lat, D)
|
||||
if status != "feasible":
|
||||
return status, sol, info
|
||||
fixed_k, piece = {}, {}
|
||||
pinned = {k for k, v in sites.items() if v[1] >= pin_lat}
|
||||
for _ in range(rounds):
|
||||
bad = violations(sites, pairs, speed, pin_lat, sol)
|
||||
if not bad:
|
||||
return "feasible", sol, info
|
||||
th = lambda k: sol.get(k, sites[k][2])
|
||||
for a, b in bad:
|
||||
if a in pinned or b in pinned:
|
||||
p, f = (a, b) if a in pinned else (b, a)
|
||||
piece[(f, p)] = th(f)
|
||||
else:
|
||||
fixed_k[(a, b)] = round((th(a) - th(b)) / 360)
|
||||
status, nsol, info = build(sites, pairs, speed, pin_lat, D, fixed_k, piece)
|
||||
if status != "feasible":
|
||||
return "unknown", None, info
|
||||
sol = nsol
|
||||
return "unknown", None, info
|
||||
|
||||
|
||||
def closest(sites, pairs, speed, pin_lat, D, theta):
|
||||
"""Among placements on the same side of every wrap as `theta`, the one that moves
|
||||
cities least in total (linear program). The region is convex, so any point in it
|
||||
satisfies every pair; re-checked anyway."""
|
||||
import numpy as np
|
||||
from scipy.optimize import linprog
|
||||
free = sorted(theta)
|
||||
ix = {k: i for i, k in enumerate(free)}
|
||||
n = len(free)
|
||||
lon = {k: v[2] for k, v in sites.items()}
|
||||
r = {k: radius(v[1]) for k, v in sites.items()}
|
||||
pinned = {k for k, v in sites.items() if v[1] >= pin_lat}
|
||||
rows, rhs = [], []
|
||||
|
||||
def add(coef, b):
|
||||
row = np.zeros(2 * n)
|
||||
for j, c in coef:
|
||||
row[j] += c
|
||||
rows.append(row)
|
||||
rhs.append(b)
|
||||
for a, b, T, slack, label in pairs:
|
||||
U = T * speed * C_FIBER / 2000 + slack
|
||||
al = alpha_deg(r[a], r[b], U)
|
||||
if al is None or (a in pinned and b in pinned):
|
||||
continue
|
||||
if a in pinned or b in pinned:
|
||||
p, f = (a, b) if a in pinned else (b, a)
|
||||
c = lon[p] + 360 * round((theta[f] - lon[p]) / 360)
|
||||
add([(ix[f], 1)], c + al)
|
||||
add([(ix[f], -1)], -(c - al))
|
||||
else:
|
||||
k = 360 * round((theta[a] - theta[b]) / 360)
|
||||
add([(ix[a], 1), (ix[b], -1)], k + al)
|
||||
add([(ix[a], -1), (ix[b], 1)], -(k - al))
|
||||
for f in free: # u >= |theta - lon|
|
||||
i = ix[f]
|
||||
add([(i, 1), (n + i, -1)], lon[f])
|
||||
add([(i, -1), (n + i, -1)], -lon[f])
|
||||
bounds = [(lon[f] - D, lon[f] + D) for f in free] + [(0, None)] * n
|
||||
res = linprog(np.r_[np.zeros(n), np.ones(n)], A_ub=np.array(rows), b_ub=np.array(rhs), bounds=bounds, method="highs")
|
||||
if not res.success:
|
||||
return theta
|
||||
out = {f: float(res.x[ix[f]]) for f in free}
|
||||
return out if not violations(sites, pairs, speed, pin_lat, out) else theta
|
||||
|
||||
|
||||
def min_shift(sites, pairs, speed, pin_lat):
|
||||
lo, hi, best = 0.0, 120.0, None
|
||||
st, sol, _ = solve(sites, pairs, speed, pin_lat, hi)
|
||||
if st != "feasible":
|
||||
return None
|
||||
best = (hi, sol)
|
||||
lower = 0.0
|
||||
for _ in range(22):
|
||||
mid = (lo + hi) / 2
|
||||
st, sol, info = solve(sites, pairs, speed, pin_lat, mid)
|
||||
if st == "feasible":
|
||||
hi, best = mid, (mid, sol)
|
||||
else:
|
||||
lo = mid
|
||||
if st == "infeasible":
|
||||
lower = max(lower, mid)
|
||||
return dict(lower=lower, upper=best[0], theta=best[1])
|
||||
|
||||
|
||||
def explain(cyc, info, sites):
|
||||
nm = lambda k: sites[k][0]
|
||||
out = []
|
||||
for u, v, w, meta in cyc:
|
||||
if meta[0] in ("hi", "lo"):
|
||||
f = meta[1]
|
||||
p, label, al = info["why"][f][1 if meta[0] == "hi" else 0]
|
||||
val = info["win"][f][1 if meta[0] == "hi" else 0]
|
||||
src = "solar time" if p == "sun" else f"{nm(p)} ↔ {nm(f)}, {label}"
|
||||
out.append(dict(text=f"{nm(f)} {'≤' if meta[0] == 'hi' else '≥'} {val % 360:.1f}°", via=src, w=round(w, 2)))
|
||||
else:
|
||||
_, a, b, label, al = meta
|
||||
out.append(dict(text=f"{nm(a)} – {nm(b)} ≤ {al:.1f}°", via=f"{nm(a)} ↔ {nm(b)}, {label}", w=round(w, 2)))
|
||||
return out
|
||||
|
||||
|
||||
def explain_any(st, cert, info, sites):
|
||||
if cert and len(cert[0]) == 4:
|
||||
return explain(cert, info, sites)
|
||||
c = cert[0]
|
||||
if c[0] == "arc":
|
||||
_, f, p, label, al, lo, hi = c
|
||||
nm = lambda k: sites[k][0]
|
||||
lines = []
|
||||
for side, val, sym in ((0, lo, "≥"), (1, hi, "≤")):
|
||||
why = info.get("why", info) if isinstance(info, dict) else {}
|
||||
q, l2, a2 = why[f][side]
|
||||
lines.append(dict(text=f"{nm(f)} {sym} {val % 360:.1f}°", via="solar time" if q == "sun" else f"{nm(q)} ↔ {nm(f)}, {l2}"))
|
||||
lines.append(dict(text=f"{nm(f)} within {al:.1f}° of {nm(p)} ({sites[p][2]:.1f}°)", via=f"{nm(p)} ↔ {nm(f)}, {label}"))
|
||||
return lines
|
||||
return [dict(text=str(c), via="")]
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sites, pairs = load_all()
|
||||
rows = []
|
||||
for pin in (0, 20, 30, 40):
|
||||
for spd, lab in ((1.0, "fibre"), (C_VACUUM / C_FIBER, "vacuum")):
|
||||
row = dict(pin=pin, speed=lab, free=sum(1 for v in sites.values() if v[1] < pin))
|
||||
res = min_shift(sites, pairs, spd, pin)
|
||||
if res is None:
|
||||
st, cert, info = build(sites, pairs, spd, pin, 179.9)
|
||||
row.update(fits=False, proof=explain_any(st, cert, info, sites) if st == "infeasible" else None)
|
||||
if st == "infeasible" and cert and len(cert[0]) == 4:
|
||||
row["margin"] = round(-sum(w for _, _, w, _ in cert), 2)
|
||||
elif st == "infeasible" and cert[0][0] == "arc":
|
||||
_, f, p, label, al, lo, hi = cert[0]
|
||||
c = sites[p][2]
|
||||
row["margin"] = round(min(max((c + 360 * k - al) - hi, lo - (c + 360 * k + al)) for k in range(-2, 3)), 2)
|
||||
else:
|
||||
row.update(fits=True, lower=round(res["lower"], 2), upper=round(res["upper"], 2))
|
||||
if res["lower"] > 0:
|
||||
st, cert, info = build(sites, pairs, spd, pin, res["lower"] * 0.999)
|
||||
if st == "infeasible":
|
||||
row["proof"] = explain_any(st, cert, info, sites)
|
||||
th = closest(sites, pairs, spd, pin, res["upper"], res["theta"])
|
||||
assert not violations(sites, pairs, spd, pin, th)
|
||||
row["moved"] = [[sites[k][0], sites[k][1], sites[k][2], round(((th[k] + 180) % 360) - 180, 2)] for k in th]
|
||||
row["pinned"] = [[v[0], v[1], v[2]] for k, v in sites.items() if v[1] >= pin]
|
||||
rows.append(row)
|
||||
msg = f"no placement fits (gap {row.get('margin')}°)" if not row["fits"] else f"shift >= {row['lower']}° (found {row['upper']}°) = {row['lower']*4:.0f} min"
|
||||
print(f"pin>={pin:2d}N {lab:6s} free={row['free']:3d}: {msg}")
|
||||
if row.get("moved"):
|
||||
mv = sorted(row["moved"], key=lambda m: -abs(((m[3] - m[2]) + 540) % 360 - 180))
|
||||
print(" moved most:", [(m[0], round(((m[3] - m[2]) + 540) % 360 - 180, 1)) for m in mv[:6]],
|
||||
"| cities moved >1°:", sum(1 for m in mv if abs(((m[3] - m[2]) + 540) % 360 - 180) > 1))
|
||||
for l in row.get("proof") or []:
|
||||
print(f" {l['text']:44s} [{l['via']}]")
|
||||
json.dump(rows, open("data/solver.json", "w"), indent=1, ensure_ascii=False)
|
||||
@@ -0,0 +1,84 @@
|
||||
"""Ocean crossings seen in RIPE Atlas anchor-mesh traceroutes (public, every 15 min).
|
||||
|
||||
For each crossing: a day of traceroutes from one anchor to another, the
|
||||
fastest reply per hop, and the hop where the round trip jumps as the packet
|
||||
crosses the cable. A hop's true RTT can't exceed a later hop's (the later
|
||||
path contains it), so each hop uses the minimum over itself and all later
|
||||
hops; ICMP replies generated slowly by routers can only inflate the raw value.
|
||||
|
||||
python3 trace.py -> data/trace.json
|
||||
"""
|
||||
import json, subprocess, time, urllib.request
|
||||
from collections import Counter, defaultdict
|
||||
|
||||
CROSSINGS = [
|
||||
("nz-akl-as38064", "au-syd-as4826", "tasman-global-access-tga-cable", "Tasman Sea"),
|
||||
("au-syd-as4826", "nz-akl-as38064", "tasman-global-access-tga-cable", "Tasman Sea"),
|
||||
("ao-lad-as37468", "br-for-as37468", "south-atlantic-cable-system-sacs", "South Atlantic"),
|
||||
("br-for-as37468", "ao-lad-as37468", "south-atlantic-cable-system-sacs", "South Atlantic"),
|
||||
("nc-nou-as45345", "au-syd-as4826", "gondwana-1", "Coral Sea"),
|
||||
("au-ept-as4826", "sg-sin-as12008", "australia-singapore-cable-asc", "Indian Ocean"),
|
||||
("au-ept-as4826", "au-syd-as4826", None, "Nullarbor (land route)"),
|
||||
("au-syd-as4826", "us-lax-as6939", None, "Pacific (cable not identified)"),
|
||||
]
|
||||
|
||||
A = {x["fqdn"].split(".")[0]: x for x in json.load(open("raw/ripe_anchors_all.json"))}
|
||||
|
||||
|
||||
def get(u):
|
||||
return json.load(urllib.request.urlopen(u, timeout=120))
|
||||
|
||||
|
||||
def mesh_msm(target):
|
||||
ip = A[target]["ip_v4"]
|
||||
d = get(f"https://atlas.ripe.net/api/v2/measurements/?target_ip={ip}&type=traceroute&status=2&af=4&fields=id,description")
|
||||
return [r["id"] for r in d["results"] if r["description"].startswith("Anchoring Mesh")][0]
|
||||
|
||||
|
||||
def rdns(ip):
|
||||
try:
|
||||
out = subprocess.run(["dig", "+short", "+time=2", "+tries=1", "-x", ip], capture_output=True, text=True, timeout=6).stdout.strip()
|
||||
return out.split("\n")[0].rstrip(".") if out else ""
|
||||
except Exception:
|
||||
return ""
|
||||
|
||||
|
||||
def main():
|
||||
stop = int(time.time())
|
||||
start = stop - 86400
|
||||
out = []
|
||||
for src, dst, cable, sea in CROSSINGS:
|
||||
msm, pid = mesh_msm(dst), A[src]["probe"]
|
||||
runs = get(f"https://atlas.ripe.net/api/v2/measurements/{msm}/results/?probe_ids={pid}&start={start}&stop={stop}")
|
||||
ipcount, best = defaultdict(Counter), {}
|
||||
for r in runs:
|
||||
for h in r.get("result", []):
|
||||
for x in h.get("result", []):
|
||||
if "rtt" in x and "from" in x:
|
||||
ipcount[h["hop"]][x["from"]] += 1
|
||||
k = (h["hop"], x["from"])
|
||||
best[k] = min(best.get(k, 1e9), x["rtt"])
|
||||
hops = []
|
||||
for hop in sorted(ipcount):
|
||||
ip = ipcount[hop].most_common(1)[0][0]
|
||||
hops.append(dict(hop=hop, ip=ip, raw=round(best[(hop, ip)], 2)))
|
||||
floor = 1e9
|
||||
for h in reversed(hops):
|
||||
floor = min(floor, h["raw"])
|
||||
h["rtt"] = round(floor, 2)
|
||||
for h in hops:
|
||||
h["name"] = rdns(h["ip"])
|
||||
jumps = [(hops[i + 1]["rtt"] - hops[i]["rtt"], i) for i in range(len(hops) - 1)]
|
||||
dj, i = max(jumps)
|
||||
rec = dict(src=src, dst=dst, src_city=A[src]["city"], dst_city=A[dst]["city"], cable=cable, sea=sea,
|
||||
msm=msm, probe=pid, runs=len(runs), hops=hops, before=i, after=i + 1, jump=round(dj, 2),
|
||||
end=hops[-1]["rtt"] if hops else None, window=[start, stop])
|
||||
out.append(rec)
|
||||
print(f"{A[src]['city']} -> {A[dst]['city']}: {len(runs)} runs, jump {dj:.2f} ms between hop {hops[i]['hop']} "
|
||||
f"({hops[i]['rtt']} ms, {hops[i]['name'] or hops[i]['ip']}) and hop {hops[i+1]['hop']} "
|
||||
f"({hops[i+1]['rtt']} ms, {hops[i+1]['name'] or hops[i+1]['ip']}); end {rec['end']} ms", flush=True)
|
||||
json.dump(out, open("data/trace.json", "w"), indent=1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
+229
@@ -0,0 +1,229 @@
|
||||
"""Our own measurement servers on Vultr, for the Cable Latency Survey.
|
||||
|
||||
python3 vps.py up create the servers, wait for them, start the 24 h ping loop
|
||||
python3 vps.py status servers, IPs, how many samples each has logged
|
||||
python3 vps.py collect copy every server's logs to data/vps/<code>/
|
||||
python3 vps.py add hnl add one more server to a running test (the others start pinging it)
|
||||
python3 vps.py down copy the logs, rebuild the page, then delete every tagged server and the SSH key
|
||||
|
||||
Limits: at most 8 servers, all tagged globe-latency; `up` refuses to run if any
|
||||
tagged server already exists, and nothing untagged is ever touched. `up` also
|
||||
schedules `down` on this machine 26 h later (systemd user timer), so the
|
||||
servers are deleted even if nobody is around.
|
||||
"""
|
||||
import base64, json, os, subprocess, sys, time, urllib.error, urllib.request
|
||||
from measure import TARGETS
|
||||
|
||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||
API = "https://api.vultr.com/v2"
|
||||
TAG = "globe-latency"
|
||||
PLANS = ["vc2-1c-1gb", "vc2-1c-2gb", "vhp-1c-1gb-intel"] # fall back when a region lacks the cheapest (Honolulu)
|
||||
OS_ID = 2284 # Ubuntu 24.04 LTS x64
|
||||
MAX = 8
|
||||
HOURS = 24
|
||||
KEYFILE = os.path.expanduser("~/.ssh/globe_latency_ed25519")
|
||||
KNOWN = os.path.expanduser("~/.ssh/globe_latency_known_hosts")
|
||||
STATE = os.path.join(HERE, "data", "vps", "state.json")
|
||||
# code, city, lat, lon (Vultr data-centre city)
|
||||
NODES = [("syd", "Sydney", -33.87, 151.21), ("mel", "Melbourne", -37.81, 144.96),
|
||||
("jnb", "Johannesburg", -26.20, 28.05), ("scl", "Santiago", -33.45, -70.67),
|
||||
("sao", "São Paulo", -23.55, -46.63), ("hnl", "Honolulu", 21.31, -157.86),
|
||||
("lax", "Los Angeles", 34.05, -118.24), ("icn", "Seoul", 37.57, 126.98)]
|
||||
assert len(NODES) <= MAX
|
||||
|
||||
CLOUD_INIT = """#cloud-config
|
||||
ssh_pwauth: false
|
||||
package_update: true
|
||||
packages: [mtr-tiny]
|
||||
"""
|
||||
|
||||
LOOP = r"""#!/bin/bash
|
||||
# every 10 minutes: 20 pings to every target; every 30 minutes: an mtr report to every target
|
||||
END=$(( $(date +%s) + HOURS*3600 ))
|
||||
cd /root/gl
|
||||
while [ "$(date +%s)" -lt "$END" ]; do
|
||||
TS=$(date -u +%FT%TZ)
|
||||
while read -r name ip; do
|
||||
S=$(ping -n -q -c 20 -i 0.2 -W 2 "$ip" 2>&1 | tail -2 | tr '\n' ' ')
|
||||
echo "$TS $name $ip $S" >> ping.log
|
||||
done < targets.txt
|
||||
if [ $(( $(date +%s) / 600 % 3 )) -eq 0 ]; then
|
||||
while read -r name ip; do
|
||||
{ echo "## $TS $name $ip"; mtr -n -r -c 5 -w "$ip"; } >> mtr.log 2>&1
|
||||
done < targets.txt
|
||||
fi
|
||||
sleep $(( 600 - $(date +%s) % 600 ))
|
||||
done
|
||||
echo "done $(date -u +%FT%TZ)" >> ping.log
|
||||
"""
|
||||
|
||||
|
||||
def apikey():
|
||||
for line in open(os.path.expanduser("~/.config/globe-latency/vultr.env")):
|
||||
if line.startswith("VULTR_API_KEY="):
|
||||
return line.split("=", 1)[1].strip()
|
||||
sys.exit("no VULTR_API_KEY in ~/.config/globe-latency/vultr.env")
|
||||
|
||||
|
||||
def api(method, path, body=None):
|
||||
req = urllib.request.Request(API + path, method=method, data=json.dumps(body).encode() if body is not None else None,
|
||||
headers={"Authorization": f"Bearer {apikey()}", "Content-Type": "application/json"})
|
||||
try:
|
||||
with urllib.request.urlopen(req, timeout=60) as r:
|
||||
raw = r.read()
|
||||
return json.loads(raw) if raw else {}
|
||||
except urllib.error.HTTPError as e:
|
||||
raise RuntimeError(f"{method} {path}: HTTP {e.code} {e.read().decode()[:300]}")
|
||||
|
||||
|
||||
def ours():
|
||||
return [i for i in api("GET", f"/instances?tag={TAG}&per_page=100")["instances"] if TAG in (i.get("tags") or [])]
|
||||
|
||||
|
||||
def ssh(ip, cmd, input=None, timeout=120):
|
||||
return subprocess.run(["ssh", "-i", KEYFILE, "-o", "StrictHostKeyChecking=accept-new", "-o", f"UserKnownHostsFile={KNOWN}",
|
||||
"-o", "ConnectTimeout=10", "-o", "BatchMode=yes", f"root@{ip}", cmd],
|
||||
input=input, capture_output=True, text=True, timeout=timeout)
|
||||
|
||||
|
||||
def up():
|
||||
if ours():
|
||||
sys.exit(f"tagged servers already exist: {[i['label'] for i in ours()]} - run `down` first")
|
||||
if not os.path.exists(KEYFILE):
|
||||
subprocess.run(["ssh-keygen", "-q", "-t", "ed25519", "-N", "", "-C", TAG, "-f", KEYFILE], check=True)
|
||||
keys = [k for k in api("GET", "/ssh-keys")["ssh_keys"] if k["name"] == TAG]
|
||||
kid = keys[0]["id"] if keys else api("POST", "/ssh-keys", {"name": TAG, "ssh_key": open(KEYFILE + ".pub").read().strip()})["ssh_key"]["id"]
|
||||
ud = base64.b64encode(CLOUD_INIT.encode()).decode()
|
||||
made = []
|
||||
for code, city, lat, lon in NODES:
|
||||
for plan in PLANS:
|
||||
try:
|
||||
i = api("POST", "/instances", {"region": code, "plan": plan, "os_id": OS_ID, "label": f"gl-{code}",
|
||||
"hostname": f"gl-{code}", "tags": [TAG], "sshkey_id": [kid], "user_data": ud,
|
||||
"backups": "disabled", "enable_ipv6": False})["instance"]
|
||||
made.append((code, i["id"], plan))
|
||||
print(f"created gl-{code} ({plan})", flush=True)
|
||||
break
|
||||
except RuntimeError as e:
|
||||
print(f" {code} {plan}: {e}", flush=True)
|
||||
# teardown safety net first, so a crash below still ends in deletion
|
||||
subprocess.run(["systemd-run", "--user", "--unit=globe-latency-teardown", f"--on-active={HOURS + 2}h",
|
||||
"/usr/bin/python3", os.path.join(HERE, "vps.py"), "down"], capture_output=True)
|
||||
print(f"teardown scheduled in {HOURS + 2} h (systemd user timer globe-latency-teardown)", flush=True)
|
||||
|
||||
t0 = time.time()
|
||||
while True:
|
||||
st = {i["id"]: i for i in ours()}
|
||||
ready = [m for m in made if st.get(m[1], {}).get("status") == "active" and st[m[1]].get("main_ip", "0.0.0.0") != "0.0.0.0"]
|
||||
print(f" {len(ready)}/{len(made)} active after {int(time.time() - t0)} s", flush=True)
|
||||
if len(ready) == len(made) or time.time() - t0 > 900:
|
||||
break
|
||||
time.sleep(15)
|
||||
st = {i["id"]: i for i in ours()}
|
||||
nodes = []
|
||||
for code, iid, plan in made:
|
||||
c = next(n for n in NODES if n[0] == code)
|
||||
nodes.append(dict(code=code, city=c[1], lat=c[2], lon=c[3], id=iid, plan=plan, ip=st[iid]["main_ip"]))
|
||||
targets = "".join(f"{n['code']} {n['ip']}\n" for n in nodes) + "".join(f"{t[2]} {t[1]}\n" for t in TARGETS)
|
||||
loop = LOOP.replace("HOURS*3600", str(HOURS * 3600))
|
||||
for n in nodes: # wait for SSH + cloud-init, then start the loop
|
||||
for _ in range(60):
|
||||
r = ssh(n["ip"], "cloud-init status --wait >/dev/null 2>&1; command -v mtr >/dev/null && echo ok", timeout=600)
|
||||
if r.stdout.strip() == "ok":
|
||||
break
|
||||
time.sleep(10)
|
||||
ssh(n["ip"], "mkdir -p /root/gl && cat > /root/gl/targets.txt", input=targets)
|
||||
ssh(n["ip"], "cat > /root/gl/loop.sh && chmod +x /root/gl/loop.sh", input=loop)
|
||||
r = ssh(n["ip"], "systemd-run --unit=glping /root/gl/loop.sh && sleep 1 && systemctl is-active glping")
|
||||
n["started"] = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
|
||||
print(f"gl-{n['code']} {n['ip']}: loop {r.stdout.strip() or r.stderr.strip()}", flush=True)
|
||||
os.makedirs(os.path.dirname(STATE), exist_ok=True)
|
||||
json.dump(dict(nodes=nodes, targets=[t[2] for t in TARGETS], hours=HOURS), open(STATE, "w"), indent=1)
|
||||
print(f"state saved to {STATE}")
|
||||
|
||||
|
||||
def add(code):
|
||||
st = json.load(open(STATE))
|
||||
if code in [n["code"] for n in st["nodes"]] or len(ours()) >= MAX:
|
||||
sys.exit("already present, or at the server limit")
|
||||
kid = [k for k in api("GET", "/ssh-keys")["ssh_keys"] if k["name"] == TAG][0]["id"]
|
||||
c = next(n for n in NODES if n[0] == code)
|
||||
ud = base64.b64encode(CLOUD_INIT.encode()).decode()
|
||||
for plan in PLANS:
|
||||
try:
|
||||
iid = api("POST", "/instances", {"region": code, "plan": plan, "os_id": OS_ID, "label": f"gl-{code}", "hostname": f"gl-{code}",
|
||||
"tags": [TAG], "sshkey_id": [kid], "user_data": ud, "backups": "disabled", "enable_ipv6": False})["instance"]["id"]
|
||||
break
|
||||
except RuntimeError as e:
|
||||
print(f" {plan}: {e}")
|
||||
else:
|
||||
sys.exit("no plan available")
|
||||
print(f"created gl-{code} ({plan})", flush=True)
|
||||
for _ in range(60):
|
||||
i = next((x for x in ours() if x["id"] == iid), {})
|
||||
if i.get("status") == "active" and i.get("main_ip", "0.0.0.0") != "0.0.0.0":
|
||||
break
|
||||
time.sleep(10)
|
||||
n = dict(code=code, city=c[1], lat=c[2], lon=c[3], id=iid, plan=plan, ip=i["main_ip"])
|
||||
for _ in range(60):
|
||||
if ssh(n["ip"], "cloud-init status --wait >/dev/null 2>&1; command -v mtr >/dev/null && echo ok", timeout=600).stdout.strip() == "ok":
|
||||
break
|
||||
time.sleep(10)
|
||||
nodes = st["nodes"] + [n]
|
||||
targets = "".join(f"{x['code']} {x['ip']}\n" for x in nodes) + "".join(f"{t[2]} {t[1]}\n" for t in TARGETS)
|
||||
ssh(n["ip"], "mkdir -p /root/gl && cat > /root/gl/targets.txt", input=targets)
|
||||
ssh(n["ip"], "cat > /root/gl/loop.sh && chmod +x /root/gl/loop.sh", input=LOOP.replace("HOURS*3600", str(HOURS * 3600)))
|
||||
r = ssh(n["ip"], "systemd-run --unit=glping /root/gl/loop.sh && sleep 1 && systemctl is-active glping")
|
||||
n["started"] = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
|
||||
print(f"gl-{code} {n['ip']}: loop {r.stdout.strip() or r.stderr.strip()}")
|
||||
for x in st["nodes"]: # the running loops re-read targets.txt every cycle
|
||||
ssh(x["ip"], f"grep -q '^{code} ' /root/gl/targets.txt || sed -i '1i {code} {n['ip']}' /root/gl/targets.txt")
|
||||
st["nodes"] = nodes
|
||||
json.dump(st, open(STATE, "w"), indent=1)
|
||||
print("others now ping it too; state updated")
|
||||
|
||||
|
||||
def status():
|
||||
for i in ours():
|
||||
r = ssh(i["main_ip"], "wc -l < /root/gl/ping.log 2>/dev/null; systemctl is-active glping", timeout=30)
|
||||
print(f"{i['label']:7s} {i['region']:4s} {i['main_ip']:16s} {i['status']:8s} {r.stdout.split()}")
|
||||
|
||||
|
||||
def collect():
|
||||
st = json.load(open(STATE))
|
||||
for n in st["nodes"]:
|
||||
d = os.path.join(HERE, "data", "vps", n["code"])
|
||||
os.makedirs(d, exist_ok=True)
|
||||
for f in ("ping.log", "mtr.log"):
|
||||
r = ssh(n["ip"], f"cat /root/gl/{f} 2>/dev/null", timeout=120)
|
||||
open(os.path.join(d, f), "w").write(r.stdout)
|
||||
print(f"{n['code']}: {sum(1 for _ in open(os.path.join(d, 'ping.log')))} ping lines")
|
||||
|
||||
|
||||
def down():
|
||||
if ours() and os.path.exists(STATE): # keep the data: copy the logs and rebuild before deleting
|
||||
try:
|
||||
collect()
|
||||
subprocess.run(["/usr/bin/python3", "vps_analyze.py"], cwd=HERE, timeout=300)
|
||||
subprocess.run(["/usr/bin/python3", "build.py"], cwd=HERE, timeout=300)
|
||||
except Exception as e:
|
||||
print("collect before delete failed:", e, flush=True)
|
||||
for i in ours():
|
||||
api("DELETE", f"/instances/{i['id']}")
|
||||
print(f"deleted {i['label']} ({i['main_ip']})", flush=True)
|
||||
for _ in range(30):
|
||||
if not ours():
|
||||
break
|
||||
time.sleep(5)
|
||||
for k in api("GET", "/ssh-keys")["ssh_keys"]:
|
||||
if k["name"] == TAG:
|
||||
api("DELETE", f"/ssh-keys/{k['id']}")
|
||||
print("deleted SSH key", TAG)
|
||||
left = ours()
|
||||
print("remaining tagged servers:", [i["label"] for i in left] or "none")
|
||||
subprocess.run(["systemctl", "--user", "stop", "globe-latency-teardown.timer"], capture_output=True)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
cmd = sys.argv[1]
|
||||
add(sys.argv[2]) if cmd == "add" else {"up": up, "status": status, "collect": collect, "down": down}[cmd]()
|
||||
@@ -0,0 +1,45 @@
|
||||
"""Turn our own servers' ping logs into live-grid cells.
|
||||
|
||||
Each server is pinned to the RIPE anchor in its own city, with its ping to that
|
||||
anchor as the allowance (the same rule as the Globalping probes). Server-to-
|
||||
server and server-to-anchor measurements then become cells between anchor
|
||||
cities, so they share the cable routes already computed for those cities.
|
||||
Honolulu has no anchor; it is its own site at the data-centre city (within
|
||||
about 1 km of the coordinates used). Every pair gets the page's 25 km slack.
|
||||
|
||||
python3 vps_analyze.py -> data/vps_cells.json
|
||||
"""
|
||||
import glob, json, os, re, statistics
|
||||
from collections import defaultdict
|
||||
from measure import TARGETS
|
||||
|
||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||
STATE = json.load(open(os.path.join(HERE, "data/vps/state.json")))
|
||||
ANCHOR = {t[2]: t[0] for t in TARGETS} # anchor fqdn -> city
|
||||
LOCAL = {"syd": "Sydney", "mel": "Melbourne", "jnb": "Johannesburg", "scl": "Santiago", "sao": "São Paulo",
|
||||
"lax": "Los Angeles", "icn": "Seoul"} # server -> city of the anchor it is pinned to
|
||||
RX = re.compile(r"^(\S+) (\S+) (\S+) .*?(\d+) packets transmitted, (\d+) received.*?= ([\d.]+)/([\d.]+)/([\d.]+)/([\d.]+) ms")
|
||||
|
||||
runs = defaultdict(list) # (src code, target name) -> per-run minimum RTTs
|
||||
for n in STATE["nodes"]:
|
||||
f = os.path.join(HERE, "data/vps", n["code"], "ping.log")
|
||||
if not os.path.exists(f):
|
||||
continue
|
||||
for line in open(f):
|
||||
m = RX.match(line)
|
||||
if m:
|
||||
runs[(n["code"], m.group(2))].append(float(m.group(6)))
|
||||
|
||||
site = lambda code_or_target: LOCAL.get(code_or_target) or ANCHOR.get(code_or_target) or ("Honolulu" if code_or_target == "hnl" else None)
|
||||
local = {c: min(runs[(c, a)]) for c, city in LOCAL.items() for a, ac in ANCHOR.items() if ac == city and runs.get((c, a))}
|
||||
|
||||
cells = []
|
||||
for (src, tgt), mins in runs.items():
|
||||
a, b = site(src), site(tgt)
|
||||
if not a or not b or a == b:
|
||||
continue
|
||||
allow = local.get(src, 0.0) + (local.get(tgt, 0.0) if tgt in LOCAL else 0.0)
|
||||
cells.append(dict(src=src, tgt=tgt, a=a, b=b, rtt=round(min(mins), 2), median=round(statistics.median(mins), 2),
|
||||
runs=len(mins), allow=round(allow, 2), slack_km=25))
|
||||
json.dump(dict(cells=cells, local=local, nodes=STATE["nodes"]), open(os.path.join(HERE, "data/vps_cells.json"), "w"), indent=1)
|
||||
print(f"{len(cells)} cells from {len(runs)} server-target series; local allowances: { {k: round(v, 2) for k, v in local.items()} }")
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,99 @@
|
||||
import { chromium } from 'playwright-core';
|
||||
import { PAGE, HAND } from './paths.mjs';
|
||||
const URL = PAGE('web/index.html');
|
||||
const VPS = [[1920,1080],[1440,900],[1366,768],[1280,720],[1024,768],[820,1180],[390,844],[360,740]];
|
||||
const b = await chromium.launch({ executablePath: process.env.CH });
|
||||
const problems = [], errs = [];
|
||||
const audit = async (p, tag) => p.evaluate((tag) => {
|
||||
const out = [], vw = innerWidth, wideM = vw > 900;
|
||||
if (document.documentElement.scrollWidth > vw + 1) out.push(`${tag}: page scrolls sideways (${document.documentElement.scrollWidth} > ${vw})`);
|
||||
const hero = document.getElementById('hero').getBoundingClientRect();
|
||||
// every visible control in the hero must be the element actually under its centre
|
||||
for (const el of document.querySelectorAll('#hero button, #hero select, #hero .li, #hero .tabs button')) {
|
||||
const r = el.getBoundingClientRect(); if (!r.width || !r.height) continue;
|
||||
const cx = r.left + r.width / 2, cy = r.top + r.height / 2;
|
||||
if (cy < 0 || cy > innerHeight || cx < 0 || cx > vw) continue; // off-screen (scroll), not covered
|
||||
let clipped = false; // scrolled out of view inside a scrolling box
|
||||
for (let a = el.parentElement; a && a !== document.body; a = a.parentElement) {
|
||||
const o = getComputedStyle(a).overflowY; if (o === 'visible') continue;
|
||||
const q = a.getBoundingClientRect(); if (cy < q.top || cy > q.bottom || cx < q.left || cx > q.right) { clipped = true; break; } }
|
||||
if (clipped) continue;
|
||||
const top = document.elementFromPoint(cx, cy);
|
||||
if (!top || !(el === top || el.contains(top))) out.push(`${tag}: "${(el.textContent||el.getAttribute('aria-label')||'').trim().slice(0,30)}" covered by ${top ? (top.id || top.className || top.tagName) : 'nothing'}`);
|
||||
if (el.scrollWidth > el.clientWidth + 1 && el.tagName === 'BUTTON') out.push(`${tag}: text clipped in button "${el.textContent.trim().slice(0,30)}"`);
|
||||
}
|
||||
for (const el of document.querySelectorAll('#card, #card .body, #card .row, #card .li, .legend, .tools, .models'))
|
||||
if (el.scrollWidth > el.clientWidth + 1) out.push(`${tag}: content wider than its box in ${el.id || el.className} (${el.scrollWidth} > ${el.clientWidth})`);
|
||||
if (wideM) {
|
||||
const boxes = ['.tl', '.bl', '.models', '#card', '#legend', '.tools'].map(s => [s, document.querySelector(s).getBoundingClientRect()]);
|
||||
for (let i = 0; i < boxes.length; i++) {
|
||||
const [n, r] = boxes[i];
|
||||
if (r.left < hero.left - 1 || r.right > hero.right + 1 || r.top < hero.top - 1 || r.bottom > hero.bottom + 1) out.push(`${tag}: ${n} sticks out of the hero`);
|
||||
for (let j = i + 1; j < boxes.length; j++) { const [m, q] = boxes[j];
|
||||
const ox = Math.min(r.right, q.right) - Math.max(r.left, q.left), oy = Math.min(r.bottom, q.bottom) - Math.max(r.top, q.top);
|
||||
if (ox > 1 && oy > 1) out.push(`${tag}: ${n} overlaps ${m} (${Math.round(ox)}x${Math.round(oy)})`); }
|
||||
}
|
||||
// the map itself against the HUD
|
||||
const t = T[S.view], cv = document.getElementById('cv').getBoundingClientRect(), cx = cv.left + t.x, cy = cv.top + t.y;
|
||||
const rad = S.view === 'globe' ? t.k : Math.PI * t.k;
|
||||
for (const [n, r] of boxes) {
|
||||
let hit;
|
||||
if (S.view === 'merc') hit = cx - rad < r.right && cx + rad > r.left && cy - rad < r.bottom && cy + rad > r.top;
|
||||
else { const dx = Math.max(r.left - cx, 0, cx - r.right), dy = Math.max(r.top - cy, 0, cy - r.bottom); hit = dx * dx + dy * dy < rad * rad; }
|
||||
if (hit) out.push(`${tag}: map (${S.view}) runs under ${n}`);
|
||||
}
|
||||
if (cy - rad < hero.top - 1 || cy + rad > hero.bottom + 1 || cx - rad < hero.left - 1) out.push(`${tag}: map cut off by the hero edge`);
|
||||
out.push(`INFO ${tag}: map radius ${Math.round(rad)}px of hero ${Math.round(hero.width)}x${Math.round(hero.height)}; card ${Math.round(document.getElementById('card').getBoundingClientRect().height)}px tall, body scrolls: ${document.querySelector('#card .body').scrollHeight > document.querySelector('#card .body').clientHeight}`);
|
||||
}
|
||||
return out;
|
||||
}, tag);
|
||||
|
||||
for (const [w, h] of VPS) {
|
||||
const p = await b.newPage({ viewport: { width: w, height: h } });
|
||||
p.on('console', m => { if (m.type() === 'error') errs.push(`${w}x${h} ${m.text()}`); });
|
||||
p.on('pageerror', e => errs.push(`${w}x${h} pageerror ${e.message}`));
|
||||
await p.goto(URL, { waitUntil: 'load' }); await p.waitForTimeout(2500);
|
||||
const tag = `${w}x${h}`;
|
||||
problems.push(...await audit(p, `${tag} route/ae`));
|
||||
await p.screenshot({ path: `out/${tag}_route.png` });
|
||||
await p.click('#rbig'); await p.waitForTimeout(300);
|
||||
problems.push(...await audit(p, `${tag} list/ae`));
|
||||
await p.screenshot({ path: `out/${tag}_list.png` });
|
||||
for (const v of ['globe', 'dp', 'merc']) {
|
||||
await p.click(`.models button[data-v="${v}"]`); await p.waitForTimeout(1200);
|
||||
problems.push(...await audit(p, `${tag} list/${v}`));
|
||||
}
|
||||
await p.click('#mode button[data-mode="line"]'); await p.waitForTimeout(300);
|
||||
problems.push(...await audit(p, `${tag} list/merc/line`));
|
||||
await p.click('.models button[data-v="ae"]'); await p.waitForTimeout(1200);
|
||||
// interactions: list row selects, toggles respond
|
||||
const before = await p.evaluate(() => S.sel);
|
||||
const rows = await p.$$('#card .li');
|
||||
if (rows.length > 2) { await rows[2].click(); await p.waitForTimeout(200); }
|
||||
const after = await p.evaluate(() => S.sel);
|
||||
if (rows.length > 2 && before === after) problems.push(`${tag}: clicking a list row did not select it`);
|
||||
await p.click('#tbad'); await p.click('#tpulse'); await p.waitForTimeout(150);
|
||||
const st = await p.evaluate(() => [S.onlyBad, S.pulses, document.getElementById('rbig').textContent, document.querySelectorAll('#card .li').length]);
|
||||
if (!st[0] || st[1]) problems.push(`${tag}: toggles did not change state ${JSON.stringify(st)}`);
|
||||
problems.push(`INFO ${tag}: counter ${st[2]} vs list rows ${st[3]} (line mode, AE)`);
|
||||
if (w === 1440) await p.screenshot({ path: `out/${tag}_line_onlybad.png` });
|
||||
await p.close();
|
||||
}
|
||||
// page body + form at desktop and phone
|
||||
for (const [w, h] of [[1440, 900], [390, 844]]) {
|
||||
const p = await b.newPage({ viewport: { width: w, height: h } });
|
||||
p.on('pageerror', e => errs.push(`${w} ${e.message}`));
|
||||
await p.goto(URL, { waitUntil: 'load' }); await p.waitForTimeout(1500);
|
||||
await p.fill('#byoA', 'Perth, AU'); await p.selectOption('#byoB', { index: 0 }); await p.fill('#byoT', '48');
|
||||
await p.click('button.go'); await p.waitForTimeout(200);
|
||||
problems.push(`INFO ${w} form: ` + (await p.$eval('#byoout .verdict', e => e.textContent)).replace(/\s+/g, ' '));
|
||||
await p.fill('#byoA', 'Nowhereville'); await p.click('button.go'); await p.waitForTimeout(100);
|
||||
problems.push(`INFO ${w} bad city: ` + (await p.$eval('#byoout', e => e.textContent)).replace(/\s+/g, ' ').slice(0, 90));
|
||||
const sw = await p.evaluate(() => document.documentElement.scrollWidth);
|
||||
if (sw > w + 1) problems.push(`${w}: page scrolls sideways ${sw}`);
|
||||
await p.screenshot({ path: `out/full_${w}.png`, fullPage: true });
|
||||
await p.close();
|
||||
}
|
||||
console.log('ERRORS', JSON.stringify(errs));
|
||||
for (const x of problems) console.log(x);
|
||||
await b.close();
|
||||
@@ -0,0 +1,16 @@
|
||||
import { chromium } from 'playwright-core';
|
||||
import { PAGE, HAND } from './paths.mjs';
|
||||
// every route selected in turn, on every map: the route panel must never overflow sideways
|
||||
const b = await chromium.launch({ executablePath: process.env.CH });
|
||||
const bad = [];
|
||||
for (const [w, h] of [[1440, 900], [1024, 768], [390, 844]]) {
|
||||
const p = await b.newPage({ viewport: { width: w, height: h } });
|
||||
await p.goto(PAGE('web/index.html'), { waitUntil: 'load' }); await p.waitForTimeout(2500);
|
||||
for (const v of ['globe', 'ae', 'dp', 'merc']) {
|
||||
await p.click(`.models button[data-v="${v}"]`); await p.waitForTimeout(1100);
|
||||
const r = await p.evaluate(() => { const out = []; for (const q of LP) { select(q.idx); for (const el of document.querySelectorAll('#card .body, #card .row')) if (el.scrollWidth > el.clientWidth + 1) { out.push(`${LS[q.a].name}-${LS[q.b].name} ${el.className} ${el.scrollWidth}>${el.clientWidth}`); break } } return out; });
|
||||
if (r.length) bad.push(`${w}x${h} ${v}: ${r.length} routes overflow, e.g. ${r[0]}`);
|
||||
}
|
||||
await p.close();
|
||||
}
|
||||
console.log('CARD OVERFLOW', bad.length ? bad.join('\n') : 'none'); await b.close();
|
||||
@@ -0,0 +1,11 @@
|
||||
import { chromium } from 'playwright-core';
|
||||
import { PAGE, HAND } from './paths.mjs';
|
||||
const b = await chromium.launch({ executablePath: process.env.CH });
|
||||
for (const [w, h] of [[1920,1080],[1440,900],[1366,768],[1280,720],[1024,768]]) {
|
||||
const p = await b.newPage({ viewport: { width: w, height: h } });
|
||||
await p.goto(PAGE('web/index.html'), { waitUntil: 'load' }); await p.waitForTimeout(1300);
|
||||
const r = await p.evaluate(() => { const e = document.querySelector('#card .body'); return e.scrollHeight - e.clientHeight; });
|
||||
console.log(`${w}x${h}: route panel overflow ${r}px`);
|
||||
await p.close();
|
||||
}
|
||||
await b.close();
|
||||
@@ -0,0 +1,24 @@
|
||||
// Load the public site in a browser at desktop and phone size: no errors, counts equal the hand-off data file.
|
||||
import { chromium } from 'playwright-core';
|
||||
import fs from 'fs';
|
||||
import { PAGE, HAND } from './paths.mjs';
|
||||
const URL_ = process.env.SITE || 'https://pingstats.aethercosmology.com/';
|
||||
const d = JSON.parse(fs.readFileSync(HAND('cable_latency_survey_data_v2.json'), 'utf8'));
|
||||
const b = await chromium.launch({ executablePath: process.env.CH });
|
||||
const errs = [];
|
||||
for (const [w, h] of [[1440, 900], [390, 844]]) {
|
||||
const p = await b.newPage({ viewport: { width: w, height: h } });
|
||||
p.on('pageerror', e => errs.push(`${w}: ${e.message}`)); p.on('console', m => { if (m.type() === 'error') errs.push(`${w}: ${m.text()}`) });
|
||||
const res = await p.goto(URL_, { waitUntil: 'networkidle' }); await p.waitForTimeout(1500);
|
||||
const r = await p.evaluate(() => ({ routes: LP.length, ae: [liveBad('ae'), liveVac('ae')], sw: document.documentElement.scrollWidth, fonts: [...document.fonts].filter(f => f.status === 'loaded').map(f => f.family).filter((x, i, a) => a.indexOf(x) === i) }));
|
||||
const f = d.summary.all_live.cable_route.ae;
|
||||
const out = {};
|
||||
for (const [src, key] of [['ours', 'vultr'], ['gp', 'globalping'], ['home', 'home']]) { await p.selectOption('#srcsel', src); await p.waitForTimeout(150);
|
||||
out[src] = await p.evaluate(() => [LP.length, liveBad('ae'), liveVac('ae')]);
|
||||
const s = d.summary[key]; if (out[src][0] !== s.routes || out[src][1] !== s.cable_route.ae.impossible_total || out[src][2] !== s.cable_route.ae.beats_vacuum) errs.push(`${w} ${src} mismatch ${out[src]}`) }
|
||||
await p.selectOption('#srcsel', 'all'); await p.waitForTimeout(400);
|
||||
await p.screenshot({ path: `out/live_${w}.png` });
|
||||
console.log(w, res.status(), JSON.stringify(r), JSON.stringify(out), r.routes === d.summary.all_live.routes && r.ae[0] === f.impossible_total && r.ae[1] === f.beats_vacuum && r.sw === w ? 'ok' : 'MISMATCH');
|
||||
await p.close();
|
||||
}
|
||||
console.log('ERRORS', JSON.stringify(errs)); await b.close();
|
||||
@@ -0,0 +1,37 @@
|
||||
import { chromium } from 'playwright-core';
|
||||
import fs from 'fs';
|
||||
import { PAGE, HAND } from './paths.mjs';
|
||||
const d = JSON.parse(fs.readFileSync(HAND('cable_latency_survey_data.json'), 'utf8'));
|
||||
const b = await chromium.launch({ executablePath: process.env.CH });
|
||||
const p = await b.newPage({ viewport: { width: 1440, height: 900 } });
|
||||
await p.goto(PAGE('web/index.html'), { waitUntil: 'load' }); await p.waitForTimeout(2000);
|
||||
const page = await p.evaluate(() => {
|
||||
const out = {}, M = [["globe","globe"],["ae","ae"],["dp","dualpole"],["merc","mercator"]];
|
||||
for (const [src, key] of [["gp","globalping"],["ours","vultr"],["home","home"],["all","all_live"]]) {
|
||||
out[key] = { routes: LPS[src].length };
|
||||
for (const [mode, kind] of [["cable","cable_route"],["line","straight"]]) { out[key][kind] = {};
|
||||
for (const [m, mk] of M) { const L = LPS[src]; out[key][kind][mk] = [L.filter(q => q.r[mode][m].bad).length, L.filter(q => q.r[mode][m].vac).length]; } }
|
||||
}
|
||||
out.wondernetwork = { routes: WN.n }; for (const [mode, kind] of [["cable","cable_route"],["line","straight"]]) { out.wondernetwork[kind] = {}; for (const [m, mk] of M) out.wondernetwork[kind][mk] = [wnBad(m, mode), wnVac(m, mode)]; }
|
||||
out.crossings = Object.fromEntries(M.map(([m, mk]) => [mk, [xBad(m), xVac(m)]]));
|
||||
out.cables = Object.fromEntries(M.map(([m, mk]) => [mk, CAB.filter(c => cabBad(c, m)).length]));
|
||||
return out;
|
||||
});
|
||||
let diffs = [];
|
||||
for (const g of ["globalping", "vultr", "home", "all_live", "wondernetwork"]) {
|
||||
const f = d.summary[g];
|
||||
if (g !== "wondernetwork" && f.routes !== page[g].routes) diffs.push(`${g} routes file ${f.routes} page ${page[g].routes}`);
|
||||
for (const kind of ["cable_route", "straight"]) for (const m of ["globe","ae","dualpole","mercator"]) {
|
||||
const fv = [f[kind][m].impossible_total, f[kind][m].beats_vacuum], pv = page[g][kind][m];
|
||||
if (fv[0] !== pv[0] || fv[1] !== pv[1]) diffs.push(`${g} ${kind} ${m}: file ${fv} page ${pv}`);
|
||||
}
|
||||
}
|
||||
for (const m of ["globe","ae","dualpole","mercator"]) {
|
||||
const fc = d.cable_crossings.filter(x => x.verdict_along_drawn_route).map(x => x.verdict_along_drawn_route[m]);
|
||||
const fv = [fc.filter(v => v !== "ok").length, fc.filter(v => v === "vacuum").length];
|
||||
if (fv[0] !== page.crossings[m][0] || fv[1] !== page.crossings[m][1]) diffs.push(`crossings ${m}: file ${fv} page ${page.crossings[m]}`);
|
||||
const cb = d.cables.list.filter(c => c.too_short_for_map[m]).length;
|
||||
if (cb !== page.cables[m]) diffs.push(`cables ${m}: file ${cb} page ${page.cables[m]}`);
|
||||
}
|
||||
console.log(diffs.length ? 'DIFFERENCES\n' + diffs.join('\n') : 'file and page agree on every count');
|
||||
await b.close();
|
||||
@@ -0,0 +1,20 @@
|
||||
// Toggle Cable routes / Straight lines on every map and record what the page shows.
|
||||
import { chromium } from 'playwright-core';
|
||||
import { PAGE, HAND } from './paths.mjs';
|
||||
const b = await chromium.launch({ executablePath: process.env.CH });
|
||||
const p = await b.newPage({ viewport: { width: 1440, height: 900 } });
|
||||
await p.goto(PAGE('site/index.html')); await p.waitForTimeout(1500);
|
||||
for (const v of ['ae', 'dp', 'merc']) {
|
||||
await p.click(`.models button[data-v="${v}"]`); await p.waitForTimeout(1200);
|
||||
for (const mode of ['cable', 'line']) {
|
||||
await p.click(`#mode button[data-mode="${mode}"]`); await p.waitForTimeout(900);
|
||||
const r = await p.evaluate(() => ({ big: document.getElementById('rbig').textContent, lab: document.getElementById('rlab').innerText.replace(/\s+/g, ' ').slice(0, 120),
|
||||
card: [...document.querySelectorAll('#card .row .top')].map(e => e.innerText.replace(/\s+/g, ' ')).join(' | '),
|
||||
score: [...document.querySelectorAll('#score tbody tr')].map(r => r.cells[1].innerText.replace(/\s+/g, ' ')).join(' / '),
|
||||
tab: document.querySelector('#card .tabs button[data-t="list"]').textContent }));
|
||||
console.log(v, mode, JSON.stringify(r));
|
||||
}
|
||||
await p.click(`#mode button[data-mode="cable"]`);
|
||||
}
|
||||
await p.click('#mode button[data-mode="line"]'); await p.waitForTimeout(1500); await p.screenshot({ path: 'out/mode_line.png' });
|
||||
await b.close();
|
||||
@@ -0,0 +1,30 @@
|
||||
// New sections: no errors; flat panels at zero correction equal the page's straight-line counts for every source;
|
||||
// the last slider stop leaves nothing inconsistent; screenshots of each section.
|
||||
import { chromium } from 'playwright-core';
|
||||
import { PAGE, HAND } from './paths.mjs';
|
||||
const b = await chromium.launch({ executablePath: process.env.CH });
|
||||
const errs = [], fails = [];
|
||||
for (const [w, h] of [[1440, 900], [390, 844]]) {
|
||||
const p = await b.newPage({ viewport: { width: w, height: h } });
|
||||
p.on('pageerror', e => errs.push(`${w}: ${e.message}`)); p.on('console', m => { if (m.type() === 'error' && !/net::|ERR_/.test(m.text())) errs.push(`${w}: ${m.text()}`) });
|
||||
await p.goto(PAGE('site/index.html')); await p.waitForTimeout(1500);
|
||||
for (const src of ['all', 'ours', 'gp', 'home']) {
|
||||
await p.selectOption('#srcsel', src); await p.waitForTimeout(150);
|
||||
const r = await p.evaluate(() => { const out = {};
|
||||
for (const [m, , k] of FFM) { const f = D.flat.fits[S.src][k]; out[m] = [f.budgets[0].inconsistent.length, liveBad(m, 'line'), f.budgets[f.budgets.length - 1].inconsistent.length, f.routes, LP.length] }
|
||||
return out });
|
||||
for (const [m, [b0, page, last, nr, lp]] of Object.entries(r)) if (b0 !== page || last !== 0 || nr !== lp) fails.push(`${w} ${src} ${m}: fit ${b0} page ${page} last ${last} routes ${nr}/${lp}`);
|
||||
}
|
||||
await p.selectOption('#srcsel', 'all'); await p.waitForTimeout(200);
|
||||
for (const [sec, name] of [['Networks on the measured paths', 'net'], ['Best attainable flat arrangements', 'ff'], ['Code and data', 'code']]) {
|
||||
const el = p.locator('h2.sec', { hasText: sec }).locator('xpath=..');
|
||||
if (name === 'ff') for (const v of [0, 4, 6]) { await p.fill('#ffb', String(v)); await p.dispatchEvent('#ffb', 'input'); await p.waitForTimeout(250); await el.screenshot({ path: `out/sec_${name}${v}_${w}.png` }) }
|
||||
else await el.screenshot({ path: `out/sec_${name}_${w}.png` });
|
||||
}
|
||||
const sw = await p.evaluate(() => document.documentElement.scrollWidth);
|
||||
if (sw !== w) fails.push(`${w}: page scrollWidth ${sw}`);
|
||||
const links = await p.evaluate(() => [...document.querySelectorAll('main a')].map(a => a.href));
|
||||
console.log(w, 'links', links.length, [...new Set(links.map(u => new URL(u).host))]);
|
||||
await p.close();
|
||||
}
|
||||
console.log('FAILS', JSON.stringify(fails)); console.log('ERRORS', JSON.stringify(errs)); await b.close();
|
||||
@@ -0,0 +1,21 @@
|
||||
import { chromium } from 'playwright-core';
|
||||
import fs from 'fs';
|
||||
import { PAGE, HAND } from './paths.mjs';
|
||||
const d = JSON.parse(fs.readFileSync(HAND('cable_latency_survey_data.json'), 'utf8'));
|
||||
const b = await chromium.launch({ executablePath: process.env.CH });
|
||||
const errs = [], blocked = [];
|
||||
for (const [w, h] of [[1440, 900], [390, 844]]) {
|
||||
const p = await b.newPage({ viewport: { width: w, height: h } });
|
||||
await p.route('**/*', r => { const u = r.request().url(); if (u.startsWith('file:')) return r.continue(); blocked.push(u); return r.abort(); });
|
||||
p.on('pageerror', e => errs.push(`${w}: ${e.message}`)); p.on('console', m => { if (m.type() === 'error' && !/ERR_FAILED|net::/.test(m.text())) errs.push(`${w}: ${m.text()}`) });
|
||||
await p.goto(PAGE('site/index.html'), { waitUntil: 'load' }); await p.waitForTimeout(2500);
|
||||
const r = await p.evaluate(() => ({ d3: typeof d3, drawn: hits.length, routes: LP.length, ae: [liveBad('ae'), liveVac('ae')], sw: document.documentElement.scrollWidth, doctype: document.doctype && document.doctype.name, title: document.title }));
|
||||
const f = d.summary.all_live.cable_route.ae;
|
||||
console.log(w, JSON.stringify(r), r.routes === d.summary.all_live.routes && r.ae[0] === f.impossible_total && r.ae[1] === f.beats_vacuum ? 'matches data file' : 'MISMATCH');
|
||||
for (const src of ['ours', 'gp', 'home']) { await p.selectOption('#srcsel', src); await p.waitForTimeout(200); }
|
||||
await p.selectOption('#srcsel', 'all'); await p.waitForTimeout(300);
|
||||
await p.screenshot({ path: `out/offline_${w}.png` });
|
||||
await p.close();
|
||||
}
|
||||
console.log('blocked external requests:', [...new Set(blocked.map(u => new URL(u).host))]);
|
||||
console.log('ERRORS', JSON.stringify(errs)); await b.close();
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"playwright-core": "1.49.1"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
// Repository-relative paths, so the checks run from the quest tree and from the public repository alike.
|
||||
import { existsSync } from 'fs';
|
||||
export const ROOT = new URL('../', import.meta.url).pathname;
|
||||
export const PAGE = (p) => 'file://' + ROOT + 'src/' + p;
|
||||
// the hand-off files sit in src/handoff/ in the quest tree and at the repository root in the public copy
|
||||
export const HAND = (f) => existsSync(ROOT + 'src/handoff/' + f) ? ROOT + 'src/handoff/' + f : ROOT + f;
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
# Browser checks for src/web/index.html and src/site/index.html.
|
||||
# Needs: npm install (playwright-core) and a Chromium binary in $CH.
|
||||
set -u
|
||||
cd "$(dirname "$0")" && mkdir -p out
|
||||
: "${CH:?set CH to a Chromium executable, e.g. ~/.cache/ms-playwright/chromium-*/chrome-linux64/chrome}"
|
||||
export CH
|
||||
node match.mjs # page counts = hand-off data file
|
||||
node src.mjs | grep FAILS # each data source shows only its own data
|
||||
node audit.mjs 2>&1 | grep -v '^INFO' # 8 viewports: clickability, overlap, overflow
|
||||
node fit.mjs | grep -v ' 0px$' || true # route panel fits the hero
|
||||
node card_sel.mjs # every route x map x size: no card overflow
|
||||
node trunc.mjs | tail -1 # no truncated text in the route card
|
||||
node view_btns.mjs | tail -2 # zoom / reset buttons
|
||||
node offline.mjs | tail -3 # site/index.html with the network blocked
|
||||
node newsec.mjs | tail -2 # networks, flat arrangements, code: counts and layout
|
||||
node mode.mjs | cut -c1-60 # cable / straight toggle changes the counts
|
||||
[ "${LIVE:-0}" = 1 ] && node live.mjs # LIVE=1: the public site
|
||||
@@ -0,0 +1,22 @@
|
||||
import { chromium } from 'playwright-core';
|
||||
import { PAGE, HAND } from './paths.mjs';
|
||||
const b = await chromium.launch({ executablePath: process.env.CH });
|
||||
const p = await b.newPage({ viewport: { width: 1440, height: 900 } });
|
||||
const errs = []; p.on('pageerror', e => errs.push(e.message)); p.on('console', m => { if (m.type() === 'error') errs.push(m.text()) });
|
||||
await p.goto(PAGE('web/index.html'), { waitUntil: 'load' }); await p.waitForTimeout(2500);
|
||||
const fails = [];
|
||||
for (const src of ['ours', 'gp', 'home', 'all']) {
|
||||
await p.selectOption('#srcsel', src); await p.waitForTimeout(1000);
|
||||
const r = await p.evaluate(() => ({ n: LP.length, ae: [liveBad('ae'), liveVac('ae')], big: document.getElementById('rbig').textContent, lab: document.getElementById('rlab').innerText.replace(/\s+/g,' '),
|
||||
sel: `${LS[LP[S.sel].a].name}-${LS[LP[S.sel].b].name}`, by: document.querySelector('#card .meas span')?.innerText,
|
||||
score: document.querySelector('#score tbody tr:nth-child(2) td:nth-child(2)').innerText.replace(/\s+/g,' '),
|
||||
vultrOnly: LP.every(q => q.cells.every(c => /Vultr/.test(c.net))), gpOnly: LP.every(q => q.cells.every(c => !/Vultr|^home/.test(c.net))), homeOnly: LP.every(q => q.cells.every(c => /^home/.test(c.net))), drawn: hits.length }));
|
||||
await p.waitForTimeout(800);
|
||||
if (+r.big !== r.ae[0]) fails.push(`${src}: counter ${r.big} != ${r.ae[0]}`);
|
||||
if (src === 'ours' && !r.vultrOnly) fails.push('ours: non-Vultr cells present');
|
||||
if (src === 'gp' && !r.gpOnly) fails.push('gp: other sources present');
|
||||
if (src === 'home' && !r.homeOnly) fails.push('home: other sources present');
|
||||
console.log(src, JSON.stringify(r));
|
||||
await p.screenshot({ path: `out/src_${src}.png` });
|
||||
}
|
||||
console.log('FAILS', JSON.stringify(fails), 'ERRORS', JSON.stringify(errs)); await b.close();
|
||||
@@ -0,0 +1,21 @@
|
||||
import { chromium } from 'playwright-core';
|
||||
import { PAGE, HAND } from './paths.mjs';
|
||||
const b = await chromium.launch({ executablePath: process.env.CH });
|
||||
const bad = [];
|
||||
for (const [w, h] of [[1920, 1080], [1440, 900], [1366, 768], [1280, 800], [1024, 768], [390, 844]]) {
|
||||
const p = await b.newPage({ viewport: { width: w, height: h } });
|
||||
await p.goto(PAGE('web/index.html')); await p.waitForTimeout(1200);
|
||||
const r = await p.evaluate(async () => {
|
||||
const out = [];
|
||||
for (const v of ['globe', 'ae', 'dp', 'merc']) { document.querySelector(`.models button[data-v="${v}"]`).click();
|
||||
for (const src of ['all', 'ours', 'gp', 'home']) { setSource(src);
|
||||
for (let i = 0; i < LP.length; i++) { select(i);
|
||||
const t = [...document.querySelectorAll('#card .row .top b, #card .row .top em, #card h2')].filter(e => e.scrollWidth > e.clientWidth + 1);
|
||||
if (t.length) out.push(`${v} ${src} ${LS[LP[i].a].name}-${LS[LP[i].b].name}: ${t.map(e => e.textContent).join(' | ')}`) } } }
|
||||
return { out, nokm: document.getElementById('card').classList.contains('nokm') };
|
||||
});
|
||||
console.log(w, h, 'truncated rows:', r.out.length, r.out.slice(0, 2));
|
||||
if (r.out.length) bad.push(w);
|
||||
await p.close();
|
||||
}
|
||||
console.log('TRUNC FAILS', bad); await b.close();
|
||||
@@ -0,0 +1,38 @@
|
||||
import { chromium } from 'playwright-core';
|
||||
import { PAGE, HAND } from './paths.mjs';
|
||||
const b = await chromium.launch({ executablePath: process.env.CH });
|
||||
const errs = [], fails = [];
|
||||
const p = await b.newPage({ viewport: { width: 1440, height: 900 } });
|
||||
p.on('pageerror', e => errs.push(e.message)); p.on('console', m => { if (m.type() === 'error') errs.push(m.text()) });
|
||||
await p.goto(PAGE('web/index.html'), { waitUntil: 'load' }); await p.waitForTimeout(2500);
|
||||
const st = () => p.evaluate(() => ({ view: S.view, k: T[S.view].k, x: T[S.view].x, y: T[S.view].y, rot: globeRot.slice(), fit: FIT[S.view], dis: document.getElementById('treset').disabled }));
|
||||
const near = (a, b) => Math.abs(a.k / b.k - 1) < .003 && Math.abs(a.x - b.x) < 1.5 && Math.abs(a.y - b.y) < 1.5;
|
||||
for (const v of ['ae', 'globe', 'dp', 'merc']) {
|
||||
if (v !== 'ae') { await p.click(`.models button[data-v="${v}"]`); await p.waitForTimeout(1300); }
|
||||
let s0 = await st();
|
||||
if (!s0.dis) fails.push(`${v}: Reset enabled on a fresh view`);
|
||||
await p.click('#tzoom'); await p.waitForTimeout(900);
|
||||
let s1 = await st();
|
||||
const changed = !near(s1, s0) || (v === 'globe' && Math.hypot(s1.rot[0] - s0.rot[0], s1.rot[1] - s0.rot[1]) > 1);
|
||||
if (!changed) fails.push(`${v}: Zoom to route changed nothing`);
|
||||
if (s1.dis) fails.push(`${v}: Reset still disabled after zooming`);
|
||||
await p.screenshot({ path: `out/zoom_${v}.png` });
|
||||
await p.click('#treset'); await p.waitForTimeout(900);
|
||||
let s2 = await st();
|
||||
if (!near(s2, s2.fit)) fails.push(`${v}: Reset did not return to the fitted view ${JSON.stringify([s2.k, s2.fit.k])}`);
|
||||
if (v === 'globe' && Math.hypot(s2.rot[0] + 160, s2.rot[1] - 25) > .5) fails.push(`globe: Reset left rotation at ${s2.rot}`);
|
||||
if (!s2.dis) fails.push(`${v}: Reset not disabled after resetting`);
|
||||
console.log(`${v}: zoom k ${s0.k.toFixed(1)} -> ${s1.k.toFixed(1)}, rot ${s0.rot.map(n=>n.toFixed(0))} -> ${s1.rot.map(n=>n.toFixed(0))}; reset -> k ${s2.k.toFixed(1)} rot ${s2.rot.map(n=>n.toFixed(0))}`);
|
||||
}
|
||||
// globe: drag, then reset must undo the rotation
|
||||
await p.click('.models button[data-v="globe"]'); await p.waitForTimeout(1300);
|
||||
await p.mouse.move(600, 400); await p.mouse.down(); await p.mouse.move(800, 300, { steps: 8 }); await p.mouse.up(); await p.waitForTimeout(100);
|
||||
let d = await st(); if (d.dis) fails.push('globe: Reset disabled after dragging');
|
||||
await p.click('#treset'); await p.waitForTimeout(900); d = await st();
|
||||
if (Math.hypot(d.rot[0] + 160, d.rot[1] - 25) > .5) fails.push(`globe: Reset after drag left rotation ${d.rot}`);
|
||||
// another route, zoomed on AE
|
||||
await p.click('.models button[data-v="ae"]'); await p.waitForTimeout(1300);
|
||||
await p.evaluate(() => { const a = LS.findIndex(s => s.name === 'Fortaleza'), c = LS.findIndex(s => s.name === 'Luanda'); select(LP.find(q => (q.a === a && q.b === c) || (q.a === c && q.b === a)).idx); });
|
||||
await p.click('#tzoom'); await p.waitForTimeout(900); await p.screenshot({ path: 'out/zoom_ae_sacs.png' });
|
||||
console.log('FAILS', JSON.stringify(fails)); console.log('ERRORS', JSON.stringify(errs));
|
||||
await b.close();
|
||||
Reference in New Issue
Block a user