增加ip的网址查询
This commit is contained in:
parent
e6a67581d7
commit
2ae8789fef
1 changed files with 46 additions and 3 deletions
|
@ -1,8 +1,10 @@
|
||||||
package workers
|
package workers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
@ -15,15 +17,56 @@ type Ip struct {
|
||||||
|
|
||||||
func (a *Ip) GetMsg() string {
|
func (a *Ip) GetMsg() string {
|
||||||
if len(a.Parms) < 2 {
|
if len(a.Parms) < 2 {
|
||||||
return "您可以使用 /ip ip地址 进行查找,支持ipv4/ipv6"
|
return "您可以使用 /ip ip地址/网址 进行查找,ip地址支持ipv4/ipv6"
|
||||||
}
|
}
|
||||||
// 去除换行符
|
// 去除换行符
|
||||||
raw_msg := strings.TrimRight(a.RawMsg, "\n")
|
raw_msg := strings.TrimRight(a.RawMsg, "\n")
|
||||||
fmt.Println("raw_msg:", raw_msg)
|
fmt.Println("raw_msg:", raw_msg)
|
||||||
parms := strings.Fields(raw_msg)
|
parms := strings.Fields(raw_msg)
|
||||||
url := "https://api.ip.sb/geoip/" + parms[1]
|
var ip string
|
||||||
|
if net.ParseIP(parms[1]) != nil {
|
||||||
|
ip = parms[1]
|
||||||
|
} else {
|
||||||
|
url := "https://api.siterelic.com/ping"
|
||||||
|
data := map[string]string{
|
||||||
|
"url": parms[1],
|
||||||
|
}
|
||||||
|
json_data, _ := json.Marshal(data)
|
||||||
|
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(json_data))
|
||||||
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
req.Header.Set("x-api-key", "d84eae04-0654-4173-bc6a-c457c4fc3f4d")
|
||||||
|
// 打印请求信息
|
||||||
|
// fmt.Println("请求方法:", req.Method)
|
||||||
|
// fmt.Println("请求URL:", req.URL.String())
|
||||||
|
// fmt.Println("请求头:")
|
||||||
|
// for key, values := range req.Header {
|
||||||
|
// for _, value := range values {
|
||||||
|
// fmt.Printf(" %s: %s\n", key, value)
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// fmt.Println("请求体:", string(json_data))
|
||||||
|
|
||||||
// fmt.Println("url: ", url)
|
resp, err := http.DefaultClient.Do(req)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("err:", err)
|
||||||
|
} else {
|
||||||
|
defer resp.Body.Close()
|
||||||
|
body, err := io.ReadAll(resp.Body)
|
||||||
|
// println(string(body))
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("err:", err)
|
||||||
|
} else {
|
||||||
|
var resp_data map[string]interface{}
|
||||||
|
json.Unmarshal(body, &resp_data)
|
||||||
|
ip = resp_data["data"].(map[string]interface{})["ip"].(string)
|
||||||
|
// print("ip: ", ip)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
url := "https://api.ip.sb/geoip/" + ip
|
||||||
|
|
||||||
|
fmt.Println("url: ", url)
|
||||||
|
|
||||||
req, err := http.NewRequest("GET", url, nil)
|
req, err := http.NewRequest("GET", url, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Reference in a new issue