diff --git a/README.md b/README.md
index 0076972..e3af16a 100644
--- a/README.md
+++ b/README.md
@@ -29,52 +29,57 @@ rust 项目代码 移步这里——
## 更新日志
+- 2022-09-28 v2.0.1:
+
+ - 优化代码,更换即将弃用的函数
+
- 2022-09-19 v2.0:
- - 支持其他项目可以引入 quake 模块
- - import "github.com/360quake/quake_go"
- - 也可以使用这个项目的模块()
+ - 支持其他项目可以引入 quake 模块
+ - import "github.com/360quake/quake_go"
+ - 也可以使用这个项目的模块()
- 2022-09-14 v1.7:
- - 使用 golang 的泛型,减少了代码的冗余和重复性
- - 要求 golang version >= 1.18
+ - 使用 golang 的泛型,减少了代码的冗余和重复性
+ - 要求 golang version >= 1.18
- 2022-09-14 v1.6:
- - 新增主机数据接口,增加主机数据实时查询功能(example:./quake host 'service:http' -st 0 -sz 20)
- - 优化命令行提示和代码逻辑
+ - 新增主机数据接口,增加主机数据实时查询功能(example:./quake host 'service:http' -st 0 -sz 20)
+ - 优化命令行提示和代码逻辑
- 2022-09-10 v1.5:
- - 替换解析的 response 的 json 由 struct 变为 map,方便可以自定义需要返回的结果
- - 支持-fe 多个可选字段,单独输出结果集
+ - 替换解析的 response 的 json 由 struct 变为 map,方便可以自定义需要返回的结果
+ - 支持-fe 多个可选字段,单独输出结果集
- 2022-09-07 v1.4:
- - 替换 hflag 来解析命令行参数,使参数拓展开发更简单
- - 更新 query 接口为 search
- - 支持 -ft 参数,可以使用载入一个逐行有搜索语法的 txt 文本,然后统一结果输出 ip:port
+ - 替换 hflag 来解析命令行参数,使参数拓展开发更简单
+ - 更新 query 接口为 search
+ - 支持 -ft 参数,可以使用载入一个逐行有搜索语法的 txt 文本,然后统一结果输出 ip:port
- 2022-09-07 v1.3:
- - 支持-ic,-s,-e(ignore_cache,start_time,end_time)参数传入,start_time 初始化是当年年初 01-01,end_time 默认初始化是 now()
- - 优化发包的结构体解析
+ - 支持-ic,-s,-e(ignore_cache,start_time,end_time)参数传入,start_time 初始化是当年年初 01-01,end_time 默认初始化是
+ now()
+ - 优化发包的结构体解析
- 2022-09-06 v1.2:
- - 默认输出格式为 ip:port(见下图)
- - 新增-t=body 可以输出 body 信息
+ - 默认输出格式为 ip:port(见下图)
+ - 新增-t=body 可以输出 body 信息
- 2022-09-06 v1.1:
- - 简化参数传参格式
- - 将 token 固化在当前目录
+ - 简化参数传参格式
+ - 将 token 固化在当前目录
- 2022-09-01 v1.0:
- - 新增 info 接口功能
- - 新增 service 接口功能
+ - 新增 info 接口功能
+ - 新增 service 接口功能
## 使用
@@ -120,27 +125,27 @@ go get -u github.com/360quake/quake_go
package main
import (
- "fmt"
+ "fmt"
- "github.com/360quake/quake_go/utils"
+ "github.com/360quake/quake_go/utils"
)
func main() {
-var reqjson utils.Reqjson
-reqjson.Query = hflag.GetString("args")
-reqjson.Start = hflag.GetString("start")
-reqjson.Size = hflag.GetString("size")
-reqjson.Start_time = hflag.GetTime("start_time")
-reqjson.End_time = hflag.GetTime("end_time")
-reqjson.Ignore_cache = hflag.GetBool("ignore_cache")
-reqjson.Field = hflag.GetString("field")
-reqjson.Query_txt = hflag.GetString("file_txt")
-
-body := utils.InfoGet("")
-body = utils.SearchServicePost(reqjson, "")
-body = utils.HostSearchPost(reqjson, "")
-fmt.Println(body)
+ var reqjson utils.Reqjson
+ reqjson.Query = hflag.GetString("args")
+ reqjson.Start = hflag.GetString("start")
+ reqjson.Size = hflag.GetString("size")
+ reqjson.Start_time = hflag.GetTime("start_time")
+ reqjson.End_time = hflag.GetTime("end_time")
+ reqjson.Ignore_cache = hflag.GetBool("ignore_cache")
+ reqjson.Field = hflag.GetString("field")
+ reqjson.Query_txt = hflag.GetString("file_txt")
+
+ body := utils.InfoGet("")
+ body = utils.SearchServicePost(reqjson, "")
+ body = utils.HostSearchPost(reqjson, "")
+ fmt.Println(body)
}
返回包都是string解析需要自己解析
diff --git a/main.go b/main.go
index 02d0860..8cb951a 100644
--- a/main.go
+++ b/main.go
@@ -49,11 +49,11 @@ func hflagInit() {
reqjson.Query = hflag.GetString("args")
reqjson.Start = hflag.GetString("start")
reqjson.Size = hflag.GetString("size")
- reqjson.Start_time = hflag.GetTime("start_time")
- reqjson.End_time = hflag.GetTime("end_time")
- reqjson.Ignore_cache = hflag.GetBool("ignore_cache")
+ reqjson.StartTime = hflag.GetTime("start_time")
+ reqjson.EndTime = hflag.GetTime("end_time")
+ reqjson.IgnoreCache = hflag.GetBool("ignore_cache")
reqjson.Field = hflag.GetString("field")
- reqjson.Query_txt = hflag.GetString("file_txt")
+ reqjson.QueryTxt = hflag.GetString("file_txt")
if sizelen, _ := strconv.Atoi(reqjson.Size); sizelen > 50 {
fmt.Println("size only less than or equal to 50")
return
@@ -73,22 +73,22 @@ func hflagInit() {
return
}
info := utils.InfoGet(token.Token)
- data_result, user_result := utils.InfoLoadJson(info)
- fmt.Println("#用户名:", user_result["username"])
- fmt.Println("#邮 箱:", user_result["email"])
- fmt.Println("#手机:", data_result["mobile_phone"])
- fmt.Println("#月度积分:", data_result["month_remaining_credit"])
- fmt.Println("#长效积分:", data_result["constant_credit"])
- fmt.Println("#Token:", data_result["token"])
+ dataResult, userResult := utils.InfoLoadJson(info)
+ fmt.Println("#用户名:", userResult["username"])
+ fmt.Println("#邮 箱:", userResult["email"])
+ fmt.Println("#手机:", dataResult["mobile_phone"])
+ fmt.Println("#月度积分:", dataResult["month_remaining_credit"])
+ fmt.Println("#长效积分:", dataResult["constant_credit"])
+ fmt.Println("#Token:", dataResult["token"])
case "search":
token, status := utils.ReadYaml("./config.yaml")
if !status {
return
}
body := utils.SearchServicePost(reqjson, token.Token)
- data_result := utils.RespLoadJson[utils.SearchJson](body).Data
+ dataResult := utils.RespLoadJson[utils.SearchJson](body).Data
if reqjson.Field != "" && reqjson.Field != "ip,port" {
- for index, value := range data_result {
+ for index, value := range dataResult {
if value.Service.HTTP[reqjson.Field] == nil {
fmt.Println(strconv.Itoa(index+1) + "# " + value.IP + ":" + " " + strconv.Itoa(value.Port))
} else {
@@ -96,7 +96,7 @@ func hflagInit() {
}
}
} else {
- for index, value := range data_result {
+ for index, value := range dataResult {
fmt.Println(strconv.Itoa(index+1) + "# " + value.IP + ":" + strconv.Itoa(value.Port))
}
}
@@ -106,8 +106,8 @@ func hflagInit() {
return
}
body := utils.HostSearchPost(reqjson, token.Token)
- data_result := utils.RespLoadJson[utils.SearchJson](body).Data
- for index, value := range data_result {
+ dataResult := utils.RespLoadJson[utils.SearchJson](body).Data
+ for index, value := range dataResult {
fmt.Println(strconv.Itoa(index+1) + "# " + value.IP)
}
// case "favicon":
diff --git a/utils/Reqjson.go b/utils/Reqjson.go
index d940982..8aa538d 100644
--- a/utils/Reqjson.go
+++ b/utils/Reqjson.go
@@ -13,12 +13,12 @@ package utils
import . "time"
type Reqjson struct {
- Query string `json:"query"`
- Start string `json:"start,omitempty"`
- Size string `json:"size,omitempty"`
- Ignore_cache bool `json:"ignore_cache,omitempty"`
- Start_time Time `json:"start_time,omitempty"`
- End_time Time `json:"end_time,omitempty"`
- Field string `json:"-"`
- Query_txt string `json:"-"`
+ Query string `json:"query"`
+ Start string `json:"start,omitempty"`
+ Size string `json:"size,omitempty"`
+ IgnoreCache bool `json:"ignore_cache,omitempty"`
+ StartTime Time `json:"start_time,omitempty"`
+ EndTime Time `json:"end_time,omitempty"`
+ Field string `json:"-"`
+ QueryTxt string `json:"-"`
}
diff --git a/utils/YamlAction.go b/utils/YamlAction.go
index 3c85456..01d93c1 100644
--- a/utils/YamlAction.go
+++ b/utils/YamlAction.go
@@ -12,7 +12,6 @@ package utils
import (
"fmt"
- "io/ioutil"
"os"
"gopkg.in/yaml.v2"
@@ -28,8 +27,8 @@ func WriteYaml(path string, token string) {
tokeninfo.Token = token
data, err := yaml.Marshal(tokeninfo)
//config赋值777操作
- err = ioutil.WriteFile(path, data, 0777)
- if err = ioutil.WriteFile(path, data, 0777); err != nil {
+ err = os.WriteFile(path, data, 0777)
+ if err = os.WriteFile(path, data, 0777); err != nil {
fmt.Printf("token init fail!")
} else {
fmt.Printf("token init success!")
@@ -43,8 +42,11 @@ func ReadYaml(path string) (TokenInfo, bool) {
token.Token = ""
_, err := os.Stat(path)
if err == nil {
- content, _ := ioutil.ReadFile(path)
- yaml.Unmarshal(content, &token)
+ content, _ := os.ReadFile(path)
+ err := yaml.Unmarshal(content, &token)
+ if err != nil {
+ return TokenInfo{}, false
+ }
return token, true
}
if os.IsNotExist(err) { //如果返回的错误类型使用os.isNotExist()判断为true,说明文件或者文件夹不存在
diff --git a/utils/api.go b/utils/api.go
index d759af7..c52b306 100644
--- a/utils/api.go
+++ b/utils/api.go
@@ -33,8 +33,8 @@ func SearchServicePost(reqjson Reqjson, token string) string {
// "end_time": "2021-02-01 00:00:00"
// }'
uri := "/search/quake_service"
- if reqjson.Query_txt != "" {
- bytedata, _ := ReadLine(reqjson.Query_txt)
+ if reqjson.QueryTxt != "" {
+ bytedata, _ := ReadLine(reqjson.QueryTxt)
tmp := ""
for _, v := range bytedata {
if tmp == "" {
@@ -122,8 +122,8 @@ func HostSearchPost(reqjson Reqjson, token string) string {
// }'
uri := "/search/quake_host"
- if reqjson.Query_txt != "" {
- bytedata, _ := ReadLine(reqjson.Query_txt)
+ if reqjson.QueryTxt != "" {
+ bytedata, _ := ReadLine(reqjson.QueryTxt)
tmp := ""
for _, v := range bytedata {
if tmp == "" {
diff --git a/utils/commond.go b/utils/commond.go
index 8ff7c4c..b5b9b98 100644
--- a/utils/commond.go
+++ b/utils/commond.go
@@ -13,7 +13,7 @@ package utils
import (
"bytes"
"fmt"
- "io/ioutil"
+ "io"
"net/http"
"strings"
)
@@ -40,9 +40,14 @@ func Apis(url string, method string, data []byte, token string) string {
fmt.Println(err)
return err.Error()
}
- defer res.Body.Close()
+ defer func(Body io.ReadCloser) {
+ err := Body.Close()
+ if err != nil {
+ panic(err)
+ }
+ }(res.Body)
- body, err := ioutil.ReadAll(res.Body)
+ body, err := io.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return err.Error()