33 lines
622 B
Go
33 lines
622 B
Go
![]() |
package tools
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
"fmt"
|
||
|
"io/ioutil"
|
||
|
"net/http"
|
||
|
)
|
||
|
|
||
|
func GetLocation(ip string) string {
|
||
|
if ip == "127.0.0.1" || ip == "localhost" {
|
||
|
return "内部IP"
|
||
|
}
|
||
|
resp, err := http.Get("https://restapi.amap.com/v3/ip?ip=" + ip + "&key=3fabc36c20379fbb9300c79b19d5d05e")
|
||
|
if err != nil {
|
||
|
panic(err)
|
||
|
|
||
|
}
|
||
|
defer resp.Body.Close()
|
||
|
s, err := ioutil.ReadAll(resp.Body)
|
||
|
fmt.Printf(string(s))
|
||
|
|
||
|
m := make(map[string]string)
|
||
|
|
||
|
err = json.Unmarshal(s, &m)
|
||
|
if err != nil {
|
||
|
fmt.Println("Umarshal failed:", err)
|
||
|
}
|
||
|
if m["province"] == "" {
|
||
|
return "未知位置"
|
||
|
}
|
||
|
return m["province"] + "-" + m["city"]
|
||
|
}
|