Skip to content

feat(cdn): add Gcore (G-Core Labs) provider detection#15

Merged
bugsyhewitt merged 1 commit into
mainfrom
worker-r18-unearth
May 29, 2026
Merged

feat(cdn): add Gcore (G-Core Labs) provider detection#15
bugsyhewitt merged 1 commit into
mainfrom
worker-r18-unearth

Conversation

@bugsyhewitt

Copy link
Copy Markdown
Owner

Summary

Adds Gcore (G-Core Labs S.A., AS199524) to the CDN provider registry. Gcore was the highest-traffic-share regional edge network still unmodeled after KeyCDN (R17). Without it, Gcore edge IPs surface as false-positive origin candidates from cert/subdomain techniques.

One provider addition only. Pure embedded data + header/DNS classification — no API key, no new dependency. Mirrors the existing buildKeyCDN() / buildEdgio() pattern.

Detection signals

  • IP ranges (embedded pkg/cdn/data/gcore-v4.txt / gcore-v6.txt, ASN AS199524): 92.223.64.0/19, 5.188.48.0/20, 185.193.116.0/22, 2a03:f480::/32
  • CNAME suffixes: .gcdn.co, .gcorelabs.com, .gcore.com
  • Headers: Server: gcore, the X-Gcore-* family (e.g. X-Gcore-Pop), and X-CDN: Gcore

Collision safety

All Gcore prefixes are exclusive. The IPv6 block was deliberately set to 2a03:f480::/32 to avoid colliding with CDN77's 2a03:90c0::/29 (a /29 masks 2a03:90c02a03:90c7). The registry-wide TestNoDuplicatePrefixAcrossProviders guard passes.

Tests

  • Added 7 new *_Gcore test functions in pkg/cdn/cdn_test.go (cdn test funcs 67 → 74): IP-range hits (v4 x2, v6), negative IP, CNAME positive/negative, and header classification (Server / X-Gcore-* / X-CDN / negative / signal-collection).
  • Full suite green: go test ./... passes, go vet clean, gofmt clean.

Docs

  • README CDN coverage list updated with Gcore.
  • CHANGELOG [Unreleased] → Added entry.
  • POST_V01.md landscape summary updated (Gcore marked shipped).

Test plan

  • go build ./...
  • go test ./... (all packages pass)
  • go test ./pkg/cdn/ -run Gcore -v (7 funcs pass)
  • TestNoDuplicatePrefixAcrossProviders passes (no prefix collision)
  • gofmt -l and go vet ./pkg/cdn/ clean

🤖 Generated with Claude Code

Add Gcore (G-Core Labs S.A., AS199524) to the CDN provider registry so
its edge IPs are filtered from origin candidates instead of polluting
results. Detection uses embedded edge ranges, gcdn.co/gcorelabs.com/
gcore.com CNAME suffixes, the Server: gcore marker, the X-Gcore-* header
family, and an X-CDN: Gcore value — pure data + classification, no API
key or new dependency, mirroring the KeyCDN/Edgio providers.

The Gcore prefixes are exclusive; the IPv6 block uses 2a03:f480::/32 to
avoid colliding with CDN77's 2a03:90c0::/29, and the registry-wide
TestNoDuplicatePrefixAcrossProviders guard passes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@bugsyhewitt
bugsyhewitt merged commit 860de2b into main May 29, 2026
5 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant