diff --git a/client.siteinfo.go b/client.siteinfo.go new file mode 100644 index 0000000..98148fe --- /dev/null +++ b/client.siteinfo.go @@ -0,0 +1,74 @@ +package siterpc + +// import ( +// "encoding/json" +// "errors" +// "strconv" +// "time" + +// "git.tetele.net/tgo/crypter" + +// "github.com/golang/protobuf/proto" +// ) + +type SiteInfoReq struct { + Master string + Host string +} + +type SiteInfoRes struct { + SiteId string + Dbname string + Domainname string +} + +/** + * 由host取对应站点关键信息 + * 请求及回均加密验签 + * 2021/06/24 + * GZ + +func GetSiteInfoByHost(host string, url ...string) (*SiteInfoRes, error) { + + conn, err := rpc_server_conn(url...) + if err != nil { + return nil, err + } + defer conn.Close() + + arg := SiteInfoReq{host} + + data_json, err := json.Marshal(arg) + if err != nil { + return nil, err + } + now_int64 := time.Now().Unix() + + encryData := crypter.DesEn(string(data_json), DES_KEY) + + now := strconv.FormatInt(now_int64, 10) + + sign := Sign(encryData, now) + + req := &Request{proto.String(encryData), proto.String(now), proto.String(sign), nil} + + res := &Response{} + + err = conn.GetSiteInfoByHost(req, res) + + if err != nil { + return nil, err + } + + res_data := GetOrgData(res) + + var res_arr SiteInfoRes + + err = json.Unmarshal([]byte(res_data), &res_arr) + + if err != nil { + return nil, err + } + return &res_arr, nil +} +*/