添加ip查询
This commit is contained in:
parent
9b7a160e61
commit
9259178be2
3 changed files with 87 additions and 1 deletions
|
@ -15,7 +15,7 @@ func main() {
|
||||||
fmt.Print("输入指令(不要带/):")
|
fmt.Print("输入指令(不要带/):")
|
||||||
raw_msg, _ := reader.ReadString('\n')
|
raw_msg, _ := reader.ReadString('\n')
|
||||||
// 去除末尾的换行符
|
// 去除末尾的换行符
|
||||||
raw_msg = strings.TrimRight(raw_msg, "\r\n")
|
// raw_msg = strings.TrimRight(raw_msg, "\r\n")
|
||||||
|
|
||||||
parms := strings.Split(raw_msg, " ")
|
parms := strings.Split(raw_msg, " ")
|
||||||
|
|
||||||
|
|
82
workers/ip.go
Normal file
82
workers/ip.go
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
package workers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"net/http"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/goccy/go-json"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Ip struct {
|
||||||
|
*StdAns
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *Ip) GetMsg() string {
|
||||||
|
if len(a.Parms) < 2 {
|
||||||
|
return "您可以使用 /ip ip地址 进行查找"
|
||||||
|
}
|
||||||
|
// 去除换行符
|
||||||
|
raw_msg := strings.TrimRight(a.RawMsg, "\n")
|
||||||
|
fmt.Println("raw_msg:", raw_msg)
|
||||||
|
parms := strings.Split(raw_msg, " ")
|
||||||
|
url := "https://api.ip.sb/geoip/" + parms[1]
|
||||||
|
|
||||||
|
// fmt.Println("url: ", url)
|
||||||
|
|
||||||
|
req, err := http.NewRequest("GET", url, nil)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("创建请求失败:", err)
|
||||||
|
}
|
||||||
|
req.Header.Set("User-Agent", "Mozilla/5.0")
|
||||||
|
resp, err := http.DefaultClient.Do(req)
|
||||||
|
if err != nil {
|
||||||
|
return "ip查询失败"
|
||||||
|
}
|
||||||
|
defer resp.Body.Close()
|
||||||
|
body, err := io.ReadAll(resp.Body)
|
||||||
|
if err != nil {
|
||||||
|
return "ip查询失败"
|
||||||
|
}
|
||||||
|
|
||||||
|
// fmt.Println("body: ", string(body))
|
||||||
|
|
||||||
|
var data map[string]interface{}
|
||||||
|
err = json.Unmarshal(body, &data)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("data: ", data)
|
||||||
|
|
||||||
|
return err.Error()
|
||||||
|
}
|
||||||
|
// 输出响应数据
|
||||||
|
// fmt.Println("data: ", data)
|
||||||
|
if _, ok := data["code"].(float64); ok {
|
||||||
|
code := data["code"].(float64)
|
||||||
|
if code == 401 {
|
||||||
|
return "ip查询失败"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var msgs []string
|
||||||
|
if _, ok := data["organization"].(string); ok {
|
||||||
|
msgs = append(msgs, "组织:"+data["organization"].(string))
|
||||||
|
}
|
||||||
|
if _, ok := data["isp"].(string); ok {
|
||||||
|
msgs = append(msgs, "ISP:"+data["isp"].(string))
|
||||||
|
}
|
||||||
|
if _, ok := data["asn"].(string); ok {
|
||||||
|
msgs = append(msgs, "ASN:"+data["asn"].(string))
|
||||||
|
}
|
||||||
|
if _, ok := data["asn_organization"].(string); ok {
|
||||||
|
msgs = append(msgs, "ASN组织:"+data["asn_organization"].(string))
|
||||||
|
}
|
||||||
|
if _, ok := data["country"].(string); ok {
|
||||||
|
msgs = append(msgs, "国家:"+data["country"].(string))
|
||||||
|
}
|
||||||
|
msgs = append(msgs, "IP:"+data["ip"].(string))
|
||||||
|
|
||||||
|
msg := strings.Join(msgs, "\n")
|
||||||
|
|
||||||
|
return msg
|
||||||
|
}
|
|
@ -18,6 +18,10 @@ func NewWorker(parms []string, uid, gid, role, mid, rawMsg string) Worker {
|
||||||
return &Hhsh{
|
return &Hhsh{
|
||||||
StdAns: NewStdAns(parms, uid, gid, role, mid, rawMsg),
|
StdAns: NewStdAns(parms, uid, gid, role, mid, rawMsg),
|
||||||
}
|
}
|
||||||
|
case "ip":
|
||||||
|
return &Ip{
|
||||||
|
StdAns: NewStdAns(parms, uid, gid, role, mid, rawMsg),
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
return &Emm{
|
return &Emm{
|
||||||
StdAns: NewStdAns(parms, uid, gid, role, mid, rawMsg)}
|
StdAns: NewStdAns(parms, uid, gid, role, mid, rawMsg)}
|
||||||
|
|
Loading…
Reference in a new issue