Externe IPv4/IPv6-Adresse in Go abrufen
English
Deutsch
Du kannst die HTTP-API von IPIfy in Go verwenden:
external_ip_lib.go
import (
"io/ioutil"
"net/http"
)
func GetExternalIPv4Address() (string, error) {
// Anfrage ausführen
resp, err := http.Get("https://api4.ipify.org")
if err != nil {
return "", err
}
// Cleanup, wenn diese Funktion endet
defer resp.Body.Close()
// Alle Antwortdaten in ein []byte einlesen
body, err := ioutil.ReadAll(resp.Body)
// Dekodieren & ausgeben
return string(body), nil
}
func GetExternalIPv6Address() (string, error) {
// Anfrage ausführen
resp, err := http.Get("https://api6.ipify.org")
if err != nil {
return "", err
}
// Cleanup, wenn diese Funktion endet
defer resp.Body.Close()
// Alle Antwortdaten in ein []byte einlesen
body, err := ioutil.ReadAll(resp.Body)
// Dekodieren & ausgeben
return string(body), nil
}Verwendungsbeispiel:
main_get_ip.go
package main
func main() {
v4, _ := GetExternalIPv4Address()
v6, _ := GetExternalIPv6Address()
println(v4)
println(v6)
}Wenn du beide Dateien in einem Verzeichnis namens GoIPAddress speicherst, kannst du ausführen
run_get_ip_example.sh
$ go build
$ ./GOIPAddress
31.190.168.110
2a03:4012:2:1022::1Check out similar posts by category:
Go, Networking
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow