Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go Utility API

A Go-based API designed to provide a robust and efficient collection of useful web, network, and data utilities. This service aims to simplify common developer tasks and assist in various analytical and research activities by offering a centralized, easy-to-use interface for these tools.

Available Utilities

This API offers a growing suite of tools, including:

  • URL Cleaner: Strips known tracking parameters (e.g., UTM, click IDs) from URLs for cleaner links or privacy.
  • Redirect Resolver: Traces HTTP redirects to reveal the final destination URL of a given link, useful for shortlinks or analyzing redirect chains.
  • UTM Generator: Constructs URLs with custom UTM tracking parameters for marketing campaigns, supporting bulk creation.
  • DNS Lookup: Performs DNS queries for various record types (A, AAAA, MX, TXT, CNAME, NS) for a specified domain.
  • IP Information: Provides basic IP validation, type classification (public/private), reverse DNS, and, if configured, detailed GeoIP/ASN information using MaxMind GeoLite2 databases.
  • HTTP Headers Viewer: Fetches and displays the complete HTTP response headers from a target URL, aiding in debugging and analysis.
  • Website Technology Stack Analyzer (Wappalyzer): Identifies the technologies (CMS, frameworks, libraries, etc.) used on a given website.
  • WHOIS Lookup: Retrieves registration and contact information for a domain name from WHOIS servers.
  • SSL Certificate Checker: Fetches and displays details about a host's SSL/TLS certificate, including validity, issuer, and chain.
  • (And potentially more utilities as the project evolves)

For detailed information on each endpoint, specific request/response formats, and all available parameters, please refer to the comprehensive API Documentation generated by Swagger.

Quick Start

Follow these steps to get the API up and running on your local machine or in a Docker container.

Prerequisites

  • Go: Ensure you have a recent version of Go installed (version 1.20 or higher is recommended for compatibility with modern language features and libraries).
  • Docker (Optional): Required if you plan to build and run the application as a Docker container for isolated and portable deployment.
  • MaxMind GeoLite2 Databases (Optional, but recommended for full IP Info functionality):
    • To enable detailed geolocation (country, city, postal code) and ASN (Autonomous System Number/Organization) lookups for IP addresses, you'll need the GeoLite2 City and ASN database files.
    • Download GeoLite2-City.mmdb and GeoLite2-ASN.mmdb from the official MaxMind GeoLite2 free geolocation data page. Note that you will need to sign up for a free MaxMind account to access these downloads.
    • After downloading, place these .mmdb files into a data/ directory located in the project root. This path is configurable via environment variables.

Environment Variables

The application relies on environment variables for key configurations. It's recommended to create a .env file in the project root for local development. The application will automatically load this file on startup.

# .env (Example)
MMDB_CITY_PATH="./data/GeoLite2-City.mmdb" # Relative or absolute path to your GeoLite2-City.mmdb file
MMDB_ASN_PATH="./data/GeoLite2-ASN.mmdb"   # Relative or absolute path to your GeoLite2-ASN.mmdb file
PORT="8080"                               # Specifies the port on which the API server will listen
GIN_MODE="debug"                          # Sets Gin framework's operational mode: "debug" for development (more verbose logging), "release" for production (optimized performance)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages