Initial commit
This commit is contained in:
33
README.md
Normal file
33
README.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# arcline-check
|
||||
|
||||
CLI tool that checks whether a domain is genuinely self-hosted or routing through a CDN or cloud provider (Cloudflare, Fastly, AWS CloudFront, etc.).
|
||||
|
||||
Core to the Arcline brand — useful as a standalone tool for anyone who wants to verify a host's transparency claims.
|
||||
|
||||
## Status
|
||||
|
||||
Planned. Not yet started.
|
||||
|
||||
## Stack
|
||||
|
||||
- Go — single static binary
|
||||
- Targets: linux/amd64, darwin/arm64, windows/amd64
|
||||
- No runtime dependencies
|
||||
|
||||
## Usage
|
||||
|
||||
```sh
|
||||
arcline-check example.com
|
||||
arcline-check example.com --json
|
||||
arcline-check example.com --watch 30
|
||||
```
|
||||
|
||||
## How it works
|
||||
|
||||
1. Resolves domain to IP
|
||||
2. PTR/rDNS lookup
|
||||
3. ASN/org lookup (ip-api.com or self-hosted fallback)
|
||||
4. Checks IP against known CDN/cloud CIDR ranges
|
||||
5. Fetches HTTP headers and inspects for CDN fingerprints (CF-Ray, X-Served-By, Via, X-Cache)
|
||||
|
||||
See [todo.md](todo.md) for the full task list and output format spec.
|
||||
53
todo.md
Normal file
53
todo.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# arcline-check — CDN / Transparency Auditor
|
||||
|
||||
Checks whether a domain is truly self-hosted or routing through a CDN/cloud
|
||||
provider (Cloudflare, Fastly, AWS CloudFront, etc.). Core to the Arcline brand.
|
||||
|
||||
## Stack
|
||||
- Language: Go
|
||||
- Distribution: single static binary (linux/amd64, darwin/arm64, windows/amd64)
|
||||
- No runtime dependencies
|
||||
|
||||
## Features
|
||||
- [ ] Resolve domain → IP
|
||||
- [ ] Reverse DNS lookup (PTR record)
|
||||
- [ ] ASN / org lookup via ip-api.com or ipinfo.io (self-hosted fallback)
|
||||
- [ ] Detect known CDN/cloud CIDR ranges (Cloudflare, Fastly, AWS, GCP, Azure)
|
||||
- [ ] HTTP header inspection (CF-Ray, X-Served-By, Via, Server, X-Cache)
|
||||
- [ ] Output: clean terminal report (color-coded pass/fail)
|
||||
- [ ] Output: --json flag for scripting
|
||||
- [ ] --watch flag: re-check every N seconds (useful during DNS migration)
|
||||
|
||||
## CLI interface
|
||||
```
|
||||
arcline-check example.com
|
||||
arcline-check example.com --json
|
||||
arcline-check example.com --watch 30
|
||||
```
|
||||
|
||||
## Output format
|
||||
```
|
||||
$ arcline-check example.com
|
||||
|
||||
domain example.com
|
||||
resolved 203.0.113.42
|
||||
rdns server1.arclineit.com
|
||||
asn AS64496 Example ISP
|
||||
org Example ISP LLC
|
||||
|
||||
[OK] not behind a known CDN
|
||||
[OK] no Cloudflare headers detected
|
||||
[OK] IP not in AWS/GCP/Azure ranges
|
||||
```
|
||||
|
||||
## Tasks
|
||||
- [ ] Project scaffold (go mod init, cmd/, internal/)
|
||||
- [ ] DNS resolution + PTR lookup
|
||||
- [ ] ASN lookup (HTTP call to free API, cache result)
|
||||
- [ ] CDN CIDR list (embed JSON, update via Makefile)
|
||||
- [ ] HTTP header fetch + CDN header detection
|
||||
- [ ] Report renderer (color terminal + JSON)
|
||||
- [ ] --watch mode
|
||||
- [ ] Cross-compile Makefile targets
|
||||
- [ ] README with usage examples
|
||||
- [ ] GitLab CI: build + release binaries on tag
|
||||
Reference in New Issue
Block a user