To use an IP location finding API, you need to send a GET request to the API's endpoint. Here's how you can do it using Go:
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
type LocationData struct {
City struct {
Names map[string]string `json:"names"`
} `json:"city"`
Continent struct {
Code string `json:"code"`
} `json:"continent"`
Country struct {
Names map[string]string `json:"names"`
} `json:"country"`
Location struct {
Latitude float64 `json:"latitude"`
Longitude float64 `json:"longitude"`
TimeZone string `json:"time_zone"`
WeatherCode string `json:"weather_code"`
} `json:"location"`
Subdivisions []struct {
Names map[string]string `json:"names"`
} `json:"subdivisions"`
Traits struct {
AutonomousSystemNumber int `json:"autonomous_system_number"`
AutonomousSystemOrganization string `json:"autonomous_system_organization"`
ConnectionType string `json:"connection_type"`
Isp string `json:"isp"`
UserType string `json:"user_type"`
} `json:"traits"`
}
func main() {
ip := "IP_Address" // Replace with the IP Address you want to lookup
token := "YOUR_API_KEY" // Replace with your actual API key
url := "https://api.findip.net/" + ip + "/?token=" + token
resp, err := http.Get(url)
if err != nil {
fmt.Println("Error:", err)
return
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println("Error:", err)
return
}
var data LocationData
json.Unmarshal(body, &data)
fmt.Println("City Name:", data.City.Names["en"])
fmt.Println("Continent Code:", data.Continent.Code)
fmt.Println("Country Name:", data.Country.Names["en"])
fmt.Println("Latitude:", data.Location.Latitude)
fmt.Println("Longitude:", data.Location.Longitude)
fmt.Println("Time Zone:", data.Location.TimeZone)
fmt.Println("Weather Code:", data.Location.WeatherCode)
for _, subdivision := range data.Subdivisions {
if name, ok := subdivision.Names["en"]; ok {
fmt.Println("Subdivision Name:", name)
}
}
fmt.Println("Autonomous System Number:", data.Traits.AutonomousSystemNumber)
fmt.Println("Autonomous System Organization:", data.Traits.AutonomousSystemOrganization)
fmt.Println("Connection Type:", data.Traits.ConnectionType)
fmt.Println("ISP:", data.Traits.Isp)
fmt.Println("User Type:", data.Traits.UserType)
}
Remember to replace 'IP_Address' and 'YOUR_API_KEY' with the actual IP address you want to verify and your actual API key.