GeoIP Service

A Next.js analysis service that combines GeoIP, DNS, HTTP, TLS, and risk signals for IP addresses, domains, and URLs in one workflow.

Open project ↗
Cover image for GeoIP Service

GeoIP Service is a Next.js application that accepts an IP address, domain, or full URL and returns a unified technical inspection. It combines location and network ownership data with DNS, HTTP, TLS, and basic risk signals that would otherwise require several separate tools.

The problem

Operational support and security investigations often begin with the same fragmented sequence: resolve a host, inspect its redirects, check its certificate, identify its network, and compare several public signals. The project brings these steps into one response model and one interface.

Analysis modes

IP inspection

Website inspection

The public-target restriction is an important boundary: a convenient inspection feature should not become a path to internal network resources.

API behavior

The service automatically distinguishes IP, domain, and URL inputs behind one lookup endpoint. Responses are JSON-first and match the information architecture used by the web interface. In-memory rate limiting is exposed through X-RateLimit-* and Retry-After headers. Optional Turso persistence can retain lookup history and recently resolved IP records.

The analysis remains useful when a GeoIP provider has incomplete data; diagnostic sections return what they can instead of failing the entire request.

Examples

# Inspect the current client IP
curl https://ip.aliyilmaz.co/api/lookup

# Inspect a specific IP
curl "https://ip.aliyilmaz.co/api/lookup?target=8.8.8.8"

# Inspect a domain or full URL
curl "https://ip.aliyilmaz.co/api/lookup?target=example.com"
curl "https://ip.aliyilmaz.co/api/lookup?target=https://openai.com"

Technical structure

The project uses Next.js and TypeScript. Input resolution, GeoIP lookup, website analysis, and response formatting live in one repository but remain separate responsibilities. OpenAPI JSON is generated at /api/swagger and embedded in a Swagger UI at /docs, keeping the live API and its documentation aligned.

← All projects