// Network facts + footer for gohegan.net landing. const FACTS = [ { k: "asn", v: "AS198657", note: "gohegan.net · gohegan-as" }, { k: "ipv4", v: "81.2.121.136/29", note: "8 addresses, all spoken for" }, { k: "ipv6 /40", v: "2a0b:4e07:2800::/40", note: "plenty of room" }, { k: "ipv6 /48", v: "2a06:9801:287::/48", note: "announced from lon1" }, { k: "transits", v: "ROUTE64 · Inferno · Hop179 · Lagrange", note: "4 paths upstream", }, { k: "tier 1 reach", v: "15 networks", note: "see fig. 1", tone: "ok" }, { k: "irr", v: "AS-GOHEGAN", note: "maintained at RIPE" }, { k: "rpki", v: "signed", note: "ROAs current", tone: "ok" }, { k: "mnt-by", v: "GOHEGAN-MNT", note: "RIPE" }, { k: "abuse", v: "abuse@gohegan.net", note: "replied to by a human" }, ]; const NETWORK_HEALTH = [ { label: 'uptime, 90d', value: '99.974%' }, { label: 'route flap, 24h', value: '0' }, { label: 'reachable v4', value: '100%' }, { label: 'reachable v6', value: '100%' }, ]; const NetworkPanel = () => (
The network

The facts.
Mostly dull, entirely true.

Everything an operator, a registry, or a curious soul might want to know — written down once, so you don't have to ask.

{NETWORK_HEALTH.map((h, i) => (
{h.label}
{h.value}
))}

measured by{' '} RIPE Atlas {' '}probes · 30 vantage points

whois -h whois.ripe.net AS198657 10 rows · {new Date().toISOString().slice(0,10)}
{FACTS.map((f, i) => (
{f.k} {f.v} {f.tone === 'ok' && } {f.note}
))}

Authoritative copies live in the{' '} RIPE database.{' '} If we disagree, RIPE is right.

); const Footer = () => ( ); const FooterLink = ({ href, label, host }) => (
  • {label} {host}
  • ); Object.assign(window, { NetworkPanel, Footer });