This Go package provides a robust solution for domain validation, IP resolution, and geolocation information retrieval. It offers a simple and efficient way to extract detailed information about a given domain.
- Domain format validation
- DNS resolution check
- IP address retrieval
- Geolocation information extraction
- Multiple location data providers
- Error handling
- Easy-to-use API
go get github.com/ByteBreach/domaininfo
package main
import (
"fmt"
"log"
"github.com/ByteBreach/domaininfo"
)
func main() {
domain := "google.com"
// Validate domain and retrieve information
domainInfo, err := domaininfo.ValidateDomain(domain)
if err != nil {
log.Fatalf("Domain validation failed: %v", err)
}
// Print domain details
fmt.Printf("Domain: %s\n", domainInfo.CleanDomain)
fmt.Printf("IP Address: %s\n", domainInfo.IPAddress)
// Print location information
location := domainInfo.Location
fmt.Printf("City: %s\n", location.City)
fmt.Printf("Region: %s\n", location.Region)
fmt.Printf("Country: %s\n", location.Country)
fmt.Printf("Coordinates: %.4f, %.4f\n",
location.Latitude,
location.Longitude)
}
-
DomainInfo
: Contains comprehensive domain detailsOriginalInput
: Original domain inputCleanDomain
: Sanitized domain nameIPAddress
: Resolved IP addressLocation
: Geographical location details
-
LocationDetails
: Geographical informationIP
: IP addressCity
: City nameRegion
: Region/StateCountry
: Country nameLatitude
: Geographical latitudeLongitude
: Geographical longitude
Primary function to validate and retrieve domain information.
input
: Domain name or URL to validate
*DomainInfo
: Detailed domain informationerror
: Validation or retrieval error
- Clean and normalize domain input
- Validate domain format
- Check DNS resolution
- Retrieve IP address
- Fetch geolocation information
The package uses multiple geolocation providers to ensure reliable location data:
- ipapi.co
- ipinfo.io
- freegeoip.app
Comprehensive error handling for various scenarios:
- Invalid domain format
- DNS resolution failure
- IP address retrieval issues
- Location data fetch problems
- Concurrent geolocation provider checking
- Minimal external dependencies
- Fast domain validation
- Requires active internet connection
- Geolocation accuracy depends on external services
- Rate limits may apply from geolocation providers
- Fork the repository
- Create your feature branch
- Commit changes
- Push to the branch
- Create a Pull Request
MIT License
- Go 1.16+
- Standard library packages
Location data accuracy is not guaranteed and depends on external geolocation services.