style: 变量命名
This commit is contained in:
@@ -19,13 +19,13 @@ func main() {
|
|||||||
if config.Settings.Basic.Interfaces == "" { //单网卡
|
if config.Settings.Basic.Interfaces == "" { //单网卡
|
||||||
var eth *tools.Eth
|
var eth *tools.Eth
|
||||||
if flags.Interface != "" {
|
if flags.Interface != "" {
|
||||||
netEth, e := net.InterfaceByName(flags.Interface)
|
netEth, err := net.InterfaceByName(flags.Interface)
|
||||||
if e != nil {
|
if err != nil {
|
||||||
log.Warnf("获取指定网卡 %s 失败,使用默认网卡: %v", flags.Interface, e)
|
log.Warnf("获取指定网卡 %s 失败,使用默认网卡: %v", flags.Interface, err)
|
||||||
} else {
|
} else {
|
||||||
eth, e = tools.ConvertInterface(*netEth)
|
eth, err = tools.ConvertInterface(*netEth)
|
||||||
if e != nil {
|
if err != nil {
|
||||||
log.Warnf("获取指定网卡 %s ip 地址失败,使用默认网卡: %v", flags.Interface, e)
|
log.Warnf("获取指定网卡 %s ip 地址失败,使用默认网卡: %v", flags.Interface, err)
|
||||||
} else if eth == nil {
|
} else if eth == nil {
|
||||||
log.Warnf("指定网卡 %s 无可用 ip 地址,使用默认网卡", flags.Interface)
|
log.Warnf("指定网卡 %s 无可用 ip 地址,使用默认网卡", flags.Interface)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -20,18 +20,18 @@ func initLog() {
|
|||||||
if !strings.HasSuffix(Settings.Log.FilePath, "/") {
|
if !strings.HasSuffix(Settings.Log.FilePath, "/") {
|
||||||
Settings.Log.FilePath += "/"
|
Settings.Log.FilePath += "/"
|
||||||
}
|
}
|
||||||
e := os.MkdirAll(Settings.Log.FilePath, os.ModePerm)
|
err := os.MkdirAll(Settings.Log.FilePath, os.ModePerm)
|
||||||
if e != nil {
|
if err != nil {
|
||||||
log.Fatalln(e)
|
log.Fatalln(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if Settings.Log.FileName == "" {
|
if Settings.Log.FileName == "" {
|
||||||
Settings.Log.FileName = time.Now().Format("2006.01.02-15.04.05") + ".log"
|
Settings.Log.FileName = time.Now().Format("2006.01.02-15.04.05") + ".log"
|
||||||
}
|
}
|
||||||
|
|
||||||
f, e := os.OpenFile(Settings.Log.FilePath+Settings.Log.FileName, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644)
|
f, err := os.OpenFile(Settings.Log.FilePath+Settings.Log.FileName, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644)
|
||||||
if e != nil {
|
if err != nil {
|
||||||
log.Fatalln(e)
|
log.Fatalln(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
//设置双重输出
|
//设置双重输出
|
||||||
|
|||||||
@@ -21,18 +21,18 @@ func Guardian() {
|
|||||||
_ = recover()
|
_ = recover()
|
||||||
}()
|
}()
|
||||||
if config.Settings.Basic.Interfaces == "" { //单网卡
|
if config.Settings.Basic.Interfaces == "" { //单网卡
|
||||||
e := Login(nil, true)
|
err := Login(nil, true)
|
||||||
if e != nil {
|
if err != nil {
|
||||||
log.Errorln("登录出错: ", e)
|
log.Errorln("登录出错: ", err)
|
||||||
}
|
}
|
||||||
} else { //多网卡
|
} else { //多网卡
|
||||||
interfaces, e := tools.GetInterfaceAddr(config.Settings.Basic.Interfaces)
|
interfaces, err := tools.GetInterfaceAddr(config.Settings.Basic.Interfaces)
|
||||||
if e == nil {
|
if err == nil {
|
||||||
for _, eth := range interfaces {
|
for _, eth := range interfaces {
|
||||||
log.Debugf("使用 %s 网口登录 ", eth.Name)
|
log.Debugf("使用 %s 网口登录 ", eth.Name)
|
||||||
e = Login(ð, true)
|
err = Login(ð, true)
|
||||||
if e != nil {
|
if err != nil {
|
||||||
log.Errorln("网口 ", eth.Name+" 登录出错: ", e)
|
log.Errorln("网口 ", eth.Name+" 登录出错: ", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,9 +50,9 @@ func Login(eth *tools.Eth, debugOutput bool) error {
|
|||||||
|
|
||||||
output("正在获取登录状态")
|
output("正在获取登录状态")
|
||||||
|
|
||||||
online, ip, e := srunClient.LoginStatus()
|
online, ip, err := srunClient.LoginStatus()
|
||||||
if e != nil {
|
if err != nil {
|
||||||
return e
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Debugln("认证客户端 ip: ", ip)
|
log.Debugln("认证客户端 ip: ", ip)
|
||||||
@@ -72,8 +72,8 @@ func Login(eth *tools.Eth, debugOutput bool) error {
|
|||||||
} else {
|
} else {
|
||||||
log.Infoln("检测到用户未登录,开始尝试登录...")
|
log.Infoln("检测到用户未登录,开始尝试登录...")
|
||||||
|
|
||||||
if e = srunClient.DoLogin(ip); e != nil {
|
if err = srunClient.DoLogin(ip); err != nil {
|
||||||
return e
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Infoln("登录成功~")
|
log.Infoln("登录成功~")
|
||||||
|
|||||||
@@ -28,9 +28,9 @@ func New(ttl uint, conf map[string]interface{}, Http *http.Client) (*DnsProvider
|
|||||||
TTL: ttl,
|
TTL: ttl,
|
||||||
Http: tool.NewHttpTool(Http),
|
Http: tool.NewHttpTool(Http),
|
||||||
}
|
}
|
||||||
e := dnsUtil.DecodeConfig(conf, &p)
|
err := dnsUtil.DecodeConfig(conf, &p)
|
||||||
if e != nil {
|
if err != nil {
|
||||||
return nil, e
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if p.AccessKeyId == "" || p.AccessKeySecret == "" {
|
if p.AccessKeyId == "" || p.AccessKeySecret == "" {
|
||||||
@@ -74,9 +74,9 @@ func (a DnsProvider) SendRequest(Type, Action string, data map[string]interface{
|
|||||||
}
|
}
|
||||||
|
|
||||||
mac := hmac.New(sha1.New, []byte(a.AccessKeySecret+"&"))
|
mac := hmac.New(sha1.New, []byte(a.AccessKeySecret+"&"))
|
||||||
_, e := mac.Write([]byte(signStr))
|
_, err := mac.Write([]byte(signStr))
|
||||||
if e != nil {
|
if err != nil {
|
||||||
return nil, e
|
return nil, err
|
||||||
}
|
}
|
||||||
data["Signature"] = base64.StdEncoding.EncodeToString(mac.Sum(nil))
|
data["Signature"] = base64.StdEncoding.EncodeToString(mac.Sum(nil))
|
||||||
|
|
||||||
@@ -86,16 +86,16 @@ func (a DnsProvider) SendRequest(Type, Action string, data map[string]interface{
|
|||||||
reqOpt.Body = data
|
reqOpt.Body = data
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, e := a.Http.Request(Type, &reqOpt)
|
resp, err := a.Http.Request(Type, &reqOpt)
|
||||||
if e != nil {
|
if err != nil {
|
||||||
return nil, e
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if resp.StatusCode > 299 {
|
if resp.StatusCode > 299 {
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
var res Response
|
var res Response
|
||||||
if e = json.NewDecoder(resp.Body).Decode(&res); e != nil {
|
if err = json.NewDecoder(resp.Body).Decode(&res); err != nil {
|
||||||
return nil, e
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil, errors.New(res.Message)
|
return nil, errors.New(res.Message)
|
||||||
@@ -105,21 +105,21 @@ func (a DnsProvider) SendRequest(Type, Action string, data map[string]interface{
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a DnsProvider) DomainRecordStatus(subDomain, rootDomain string) (*DomainStatus, bool, error) {
|
func (a DnsProvider) DomainRecordStatus(subDomain, rootDomain string) (*DomainStatus, bool, error) {
|
||||||
resp, e := a.SendRequest("GET", "DescribeDomainRecords", map[string]interface{}{
|
resp, err := a.SendRequest("GET", "DescribeDomainRecords", map[string]interface{}{
|
||||||
"DomainName": rootDomain,
|
"DomainName": rootDomain,
|
||||||
"SearchMode": "EXACT",
|
"SearchMode": "EXACT",
|
||||||
"KeyWord": subDomain,
|
"KeyWord": subDomain,
|
||||||
"PageSize": 1,
|
"PageSize": 1,
|
||||||
"Type": "A",
|
"Type": "A",
|
||||||
})
|
})
|
||||||
if e != nil {
|
if err != nil {
|
||||||
return nil, false, e
|
return nil, false, err
|
||||||
}
|
}
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
|
|
||||||
var res DomainStatusRes
|
var res DomainStatusRes
|
||||||
if e = json.NewDecoder(resp.Body).Decode(&res); e != nil {
|
if err = json.NewDecoder(resp.Body).Decode(&res); err != nil {
|
||||||
return nil, false, e
|
return nil, false, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if res.TotalCount == 0 || len(res.DomainRecords.Record) == 0 {
|
if res.TotalCount == 0 || len(res.DomainRecords.Record) == 0 {
|
||||||
@@ -130,15 +130,15 @@ func (a DnsProvider) DomainRecordStatus(subDomain, rootDomain string) (*DomainSt
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a DnsProvider) UpdateRecord(RecordId, subDomain, ip string) error {
|
func (a DnsProvider) UpdateRecord(RecordId, subDomain, ip string) error {
|
||||||
resp, e := a.SendRequest("POST", "UpdateDomainRecord", map[string]interface{}{
|
resp, err := a.SendRequest("POST", "UpdateDomainRecord", map[string]interface{}{
|
||||||
"RecordId": RecordId,
|
"RecordId": RecordId,
|
||||||
"RR": subDomain,
|
"RR": subDomain,
|
||||||
"Type": "A",
|
"Type": "A",
|
||||||
"Value": ip,
|
"Value": ip,
|
||||||
"TTL": a.TTL,
|
"TTL": a.TTL,
|
||||||
})
|
})
|
||||||
if e != nil {
|
if err != nil {
|
||||||
return e
|
return err
|
||||||
}
|
}
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
|
|
||||||
@@ -146,15 +146,15 @@ func (a DnsProvider) UpdateRecord(RecordId, subDomain, ip string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a DnsProvider) NewRecord(subDomain, rootDomain, ip string) error {
|
func (a DnsProvider) NewRecord(subDomain, rootDomain, ip string) error {
|
||||||
resp, e := a.SendRequest("POST", "AddDomainRecord", map[string]interface{}{
|
resp, err := a.SendRequest("POST", "AddDomainRecord", map[string]interface{}{
|
||||||
"DomainName": rootDomain,
|
"DomainName": rootDomain,
|
||||||
"RR": subDomain,
|
"RR": subDomain,
|
||||||
"Type": "A",
|
"Type": "A",
|
||||||
"Value": ip,
|
"Value": ip,
|
||||||
"TTL": a.TTL,
|
"TTL": a.TTL,
|
||||||
})
|
})
|
||||||
if e != nil {
|
if err != nil {
|
||||||
return e
|
return err
|
||||||
}
|
}
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
|
|
||||||
@@ -162,14 +162,14 @@ func (a DnsProvider) NewRecord(subDomain, rootDomain, ip string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a DnsProvider) SetDomainRecord(domain, ip string) error {
|
func (a DnsProvider) SetDomainRecord(domain, ip string) error {
|
||||||
subDomain, rootDomain, e := dnsUtil.DecodeDomain(domain)
|
subDomain, rootDomain, err := dnsUtil.DecodeDomain(domain)
|
||||||
if e != nil {
|
if err != nil {
|
||||||
return e
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
record, exist, e := a.DomainRecordStatus(subDomain, rootDomain)
|
record, exist, err := a.DomainRecordStatus(subDomain, rootDomain)
|
||||||
if e != nil {
|
if err != nil {
|
||||||
return e
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if exist {
|
if exist {
|
||||||
|
|||||||
@@ -20,9 +20,9 @@ func New(ttl int, conf map[string]interface{}, Http *http.Client) (*DnsProvider,
|
|||||||
var p = DnsProvider{
|
var p = DnsProvider{
|
||||||
TTL: ttl,
|
TTL: ttl,
|
||||||
}
|
}
|
||||||
e := dnsUtil.DecodeConfig(conf, &p)
|
err := dnsUtil.DecodeConfig(conf, &p)
|
||||||
if e != nil {
|
if err != nil {
|
||||||
return nil, e
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if p.Zone == "" {
|
if p.Zone == "" {
|
||||||
@@ -34,36 +34,36 @@ func New(ttl int, conf map[string]interface{}, Http *http.Client) (*DnsProvider,
|
|||||||
return nil, errors.New("cloudflare token 不能为空")
|
return nil, errors.New("cloudflare token 不能为空")
|
||||||
}
|
}
|
||||||
|
|
||||||
p.Api, e = cloudflare.NewWithAPIToken(p.Token, cloudflare.HTTPClient(Http))
|
p.Api, err = cloudflare.NewWithAPIToken(p.Token, cloudflare.HTTPClient(Http))
|
||||||
return &p, e
|
return &p, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a DnsProvider) SetDomainRecord(domain, ip string) error {
|
func (a DnsProvider) SetDomainRecord(domain, ip string) error {
|
||||||
records, _, e := a.Api.ListDNSRecords(context.Background(), a.ZoneResource, cloudflare.ListDNSRecordsParams{
|
records, _, err := a.Api.ListDNSRecords(context.Background(), a.ZoneResource, cloudflare.ListDNSRecordsParams{
|
||||||
Type: "A",
|
Type: "A",
|
||||||
Name: domain,
|
Name: domain,
|
||||||
})
|
})
|
||||||
if e != nil {
|
if err != nil {
|
||||||
return e
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(records) == 0 {
|
if len(records) == 0 {
|
||||||
_, e = a.Api.CreateDNSRecord(context.Background(), a.ZoneResource, cloudflare.CreateDNSRecordParams{
|
_, err = a.Api.CreateDNSRecord(context.Background(), a.ZoneResource, cloudflare.CreateDNSRecordParams{
|
||||||
Type: "A",
|
Type: "A",
|
||||||
Name: domain,
|
Name: domain,
|
||||||
Content: ip,
|
Content: ip,
|
||||||
TTL: a.TTL,
|
TTL: a.TTL,
|
||||||
})
|
})
|
||||||
return e
|
return err
|
||||||
} else {
|
} else {
|
||||||
record := records[0]
|
record := records[0]
|
||||||
if record.Content == ip {
|
if record.Content == ip {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
_, e = a.Api.UpdateDNSRecord(context.Background(), a.ZoneResource, cloudflare.UpdateDNSRecordParams{
|
_, err = a.Api.UpdateDNSRecord(context.Background(), a.ZoneResource, cloudflare.UpdateDNSRecordParams{
|
||||||
ID: record.ID,
|
ID: record.ID,
|
||||||
Content: ip,
|
Content: ip,
|
||||||
})
|
})
|
||||||
return e
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package dnspod
|
package dnspod
|
||||||
|
|
||||||
import (
|
import (
|
||||||
dnsUtil2 "github.com/Mmx233/BitSrunLoginGo/internal/pkg/dns/util"
|
dnsUtil "github.com/Mmx233/BitSrunLoginGo/internal/pkg/dns/util"
|
||||||
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
|
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
|
||||||
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile"
|
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile"
|
||||||
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/regions"
|
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/regions"
|
||||||
@@ -19,19 +19,19 @@ type DnsProvider struct {
|
|||||||
|
|
||||||
func New(ttl uint64, conf map[string]interface{}, Http http.RoundTripper) (*DnsProvider, error) {
|
func New(ttl uint64, conf map[string]interface{}, Http http.RoundTripper) (*DnsProvider, error) {
|
||||||
var p = DnsProvider{TTL: ttl}
|
var p = DnsProvider{TTL: ttl}
|
||||||
e := dnsUtil2.DecodeConfig(conf, &p)
|
err := dnsUtil.DecodeConfig(conf, &p)
|
||||||
if e != nil {
|
if err != nil {
|
||||||
return nil, e
|
return nil, err
|
||||||
}
|
}
|
||||||
p.Client, e = dnspod.NewClient(common.NewCredential(p.SecretId, p.SecretKey), regions.Guangzhou, profile.NewClientProfile())
|
p.Client, err = dnspod.NewClient(common.NewCredential(p.SecretId, p.SecretKey), regions.Guangzhou, profile.NewClientProfile())
|
||||||
p.Client.WithHttpTransport(Http)
|
p.Client.WithHttpTransport(Http)
|
||||||
return &p, e
|
return &p, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a DnsProvider) SetDomainRecord(domain, ip string) error {
|
func (a DnsProvider) SetDomainRecord(domain, ip string) error {
|
||||||
subDomain, rootDomain, e := dnsUtil2.DecodeDomain(domain)
|
subDomain, rootDomain, err := dnsUtil.DecodeDomain(domain)
|
||||||
if e != nil {
|
if err != nil {
|
||||||
return e
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -44,8 +44,8 @@ func (a DnsProvider) SetDomainRecord(domain, ip string) error {
|
|||||||
reqRecordList.Domain = &rootDomain
|
reqRecordList.Domain = &rootDomain
|
||||||
reqRecordList.Subdomain = &subDomain
|
reqRecordList.Subdomain = &subDomain
|
||||||
reqRecordList.Limit = &limit
|
reqRecordList.Limit = &limit
|
||||||
res, e := a.Client.DescribeRecordList(reqRecordList)
|
res, err := a.Client.DescribeRecordList(reqRecordList)
|
||||||
if (e != nil && strings.Contains(e.Error(), dnspod.RESOURCENOTFOUND_NODATAOFRECORD)) || (e == nil && len(res.Response.RecordList) == 0) {
|
if (err != nil && strings.Contains(err.Error(), dnspod.RESOURCENOTFOUND_NODATAOFRECORD)) || (err == nil && len(res.Response.RecordList) == 0) {
|
||||||
reqNewRecord := dnspod.NewCreateRecordRequest()
|
reqNewRecord := dnspod.NewCreateRecordRequest()
|
||||||
reqNewRecord.TTL = &a.TTL
|
reqNewRecord.TTL = &a.TTL
|
||||||
reqNewRecord.Domain = &rootDomain
|
reqNewRecord.Domain = &rootDomain
|
||||||
@@ -53,10 +53,10 @@ func (a DnsProvider) SetDomainRecord(domain, ip string) error {
|
|||||||
reqNewRecord.RecordLine = &recordLine
|
reqNewRecord.RecordLine = &recordLine
|
||||||
reqNewRecord.Value = &ip
|
reqNewRecord.Value = &ip
|
||||||
reqNewRecord.SubDomain = &subDomain
|
reqNewRecord.SubDomain = &subDomain
|
||||||
_, e = a.Client.CreateRecord(reqNewRecord)
|
_, err = a.Client.CreateRecord(reqNewRecord)
|
||||||
return e
|
return err
|
||||||
} else if e != nil {
|
} else if err != nil {
|
||||||
return e
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
reqModifyRecord := dnspod.NewModifyRecordRequest()
|
reqModifyRecord := dnspod.NewModifyRecordRequest()
|
||||||
@@ -66,6 +66,6 @@ func (a DnsProvider) SetDomainRecord(domain, ip string) error {
|
|||||||
reqModifyRecord.RecordId = res.Response.RecordList[0].RecordId
|
reqModifyRecord.RecordId = res.Response.RecordList[0].RecordId
|
||||||
reqModifyRecord.RecordLine = &recordLine
|
reqModifyRecord.RecordLine = &recordLine
|
||||||
reqModifyRecord.RecordType = &recordType
|
reqModifyRecord.RecordType = &recordType
|
||||||
_, e = a.Client.ModifyRecord(reqModifyRecord)
|
_, err = a.Client.ModifyRecord(reqModifyRecord)
|
||||||
return e
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,26 +44,26 @@ func (a *Api) request(path string, query map[string]interface{}) (map[string]int
|
|||||||
query["callback"] = callback
|
query["callback"] = callback
|
||||||
query["_"] = timestamp
|
query["_"] = timestamp
|
||||||
httpTool := tool.NewHttpTool(a.Client)
|
httpTool := tool.NewHttpTool(a.Client)
|
||||||
req, e := httpTool.GenReq("GET", &tool.DoHttpReq{
|
req, err := httpTool.GenReq("GET", &tool.DoHttpReq{
|
||||||
Url: a.BaseUrl + path,
|
Url: a.BaseUrl + path,
|
||||||
Query: query,
|
Query: query,
|
||||||
})
|
})
|
||||||
if e != nil {
|
if err != nil {
|
||||||
log.Debugln(e)
|
log.Debugln(err)
|
||||||
return nil, e
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, e := httpTool.Client.Do(req)
|
resp, err := httpTool.Client.Do(req)
|
||||||
if e != nil {
|
if err != nil {
|
||||||
log.Debugln(e)
|
log.Debugln(err)
|
||||||
return nil, e
|
return nil, err
|
||||||
}
|
}
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
|
|
||||||
data, e := io.ReadAll(resp.Body)
|
data, err := io.ReadAll(resp.Body)
|
||||||
if e != nil {
|
if err != nil {
|
||||||
log.Debugln(e)
|
log.Debugln(err)
|
||||||
return nil, e
|
return nil, err
|
||||||
}
|
}
|
||||||
res := string(data)
|
res := string(data)
|
||||||
|
|
||||||
@@ -83,9 +83,9 @@ func (a *Api) DetectAcid() (string, error) {
|
|||||||
addr := a.BaseUrl
|
addr := a.BaseUrl
|
||||||
for {
|
for {
|
||||||
log.Debugln("HTTP GET ", addr)
|
log.Debugln("HTTP GET ", addr)
|
||||||
res, e := a.NoDirect.Get(addr)
|
res, err := a.NoDirect.Get(addr)
|
||||||
if e != nil {
|
if err != nil {
|
||||||
return "", e
|
return "", err
|
||||||
}
|
}
|
||||||
_ = res.Body.Close()
|
_ = res.Body.Close()
|
||||||
loc := res.Header.Get("location")
|
loc := res.Header.Get("location")
|
||||||
@@ -97,9 +97,9 @@ func (a *Api) DetectAcid() (string, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var u *url.URL
|
var u *url.URL
|
||||||
u, e = url.Parse(addr)
|
u, err = url.Parse(addr)
|
||||||
if e != nil {
|
if err != nil {
|
||||||
return "", e
|
return "", err
|
||||||
}
|
}
|
||||||
acid := u.Query().Get(`ac_id`)
|
acid := u.Query().Get(`ac_id`)
|
||||||
if acid != "" {
|
if acid != "" {
|
||||||
|
|||||||
@@ -30,13 +30,13 @@ type Srun struct {
|
|||||||
api Api
|
api Api
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c Srun) LoginStatus() (online bool, ip string, e error) {
|
func (c Srun) LoginStatus() (online bool, ip string, err error) {
|
||||||
res, e := c.api.GetUserInfo()
|
res, err := c.api.GetUserInfo()
|
||||||
if e != nil {
|
if err != nil {
|
||||||
return false, "", e
|
return false, "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
err, ok := res["error"]
|
errRes, ok := res["error"]
|
||||||
if !ok {
|
if !ok {
|
||||||
return false, "", ErrResultCannotFound
|
return false, "", ErrResultCannotFound
|
||||||
}
|
}
|
||||||
@@ -54,7 +54,7 @@ func (c Srun) LoginStatus() (online bool, ip string, e error) {
|
|||||||
|
|
||||||
inet := strings.HasPrefix(ip, "192.168.") || strings.HasPrefix(ip, "10.") || strings.HasPrefix(ip, "172.")
|
inet := strings.HasPrefix(ip, "192.168.") || strings.HasPrefix(ip, "10.") || strings.HasPrefix(ip, "172.")
|
||||||
|
|
||||||
online = err.(string) == "ok" || !inet
|
online = errRes.(string) == "ok" || !inet
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -66,9 +66,9 @@ func (c Srun) DoLogin(clientIP string) error {
|
|||||||
c.LoginInfo.Form.Username += "@" + c.LoginInfo.Form.UserType
|
c.LoginInfo.Form.Username += "@" + c.LoginInfo.Form.UserType
|
||||||
}
|
}
|
||||||
|
|
||||||
res, e := c.api.GetChallenge(c.LoginInfo.Form.Username, clientIP)
|
res, err := c.api.GetChallenge(c.LoginInfo.Form.Username, clientIP)
|
||||||
if e != nil {
|
if err != nil {
|
||||||
return e
|
return err
|
||||||
}
|
}
|
||||||
token, ok := res["challenge"]
|
token, ok := res["challenge"]
|
||||||
if !ok {
|
if !ok {
|
||||||
@@ -79,15 +79,15 @@ func (c Srun) DoLogin(clientIP string) error {
|
|||||||
|
|
||||||
log.Debugln("发送登录请求")
|
log.Debugln("发送登录请求")
|
||||||
|
|
||||||
info, e := json.Marshal(map[string]string{
|
info, err := json.Marshal(map[string]string{
|
||||||
"username": c.LoginInfo.Form.Username,
|
"username": c.LoginInfo.Form.Username,
|
||||||
"password": c.LoginInfo.Form.Password,
|
"password": c.LoginInfo.Form.Password,
|
||||||
"ip": clientIP,
|
"ip": clientIP,
|
||||||
"acid": c.LoginInfo.Meta.Acid,
|
"acid": c.LoginInfo.Meta.Acid,
|
||||||
"enc_ver": c.LoginInfo.Meta.Enc,
|
"enc_ver": c.LoginInfo.Meta.Enc,
|
||||||
})
|
})
|
||||||
if e != nil {
|
if err != nil {
|
||||||
return e
|
return err
|
||||||
}
|
}
|
||||||
EncryptedInfo := "{SRBX1}" + Base64(XEncode(string(info), tokenStr))
|
EncryptedInfo := "{SRBX1}" + Base64(XEncode(string(info), tokenStr))
|
||||||
Md5Str := Md5(tokenStr)
|
Md5Str := Md5(tokenStr)
|
||||||
@@ -99,7 +99,7 @@ func (c Srun) DoLogin(clientIP string) error {
|
|||||||
tokenStr + EncryptedInfo,
|
tokenStr + EncryptedInfo,
|
||||||
)
|
)
|
||||||
|
|
||||||
res, e = c.api.Login(
|
res, err = c.api.Login(
|
||||||
c.LoginInfo.Form.Username,
|
c.LoginInfo.Form.Username,
|
||||||
EncryptedMd5,
|
EncryptedMd5,
|
||||||
c.LoginInfo.Meta.Acid,
|
c.LoginInfo.Meta.Acid,
|
||||||
@@ -109,8 +109,8 @@ func (c Srun) DoLogin(clientIP string) error {
|
|||||||
c.LoginInfo.Meta.N,
|
c.LoginInfo.Meta.N,
|
||||||
c.LoginInfo.Meta.Type,
|
c.LoginInfo.Meta.Type,
|
||||||
)
|
)
|
||||||
if e != nil {
|
if err != nil {
|
||||||
return e
|
return err
|
||||||
}
|
}
|
||||||
var result interface{}
|
var result interface{}
|
||||||
result, ok = res["error"]
|
result, ok = res["error"]
|
||||||
|
|||||||
30
tools/eth.go
30
tools/eth.go
@@ -14,16 +14,16 @@ type Eth struct {
|
|||||||
|
|
||||||
// ConvertInterface 当没有 ipv4 地址时 eth 可能为 nil
|
// ConvertInterface 当没有 ipv4 地址时 eth 可能为 nil
|
||||||
func ConvertInterface(eth net.Interface) (*Eth, error) {
|
func ConvertInterface(eth net.Interface) (*Eth, error) {
|
||||||
addresses, e := eth.Addrs()
|
addresses, err := eth.Addrs()
|
||||||
if e != nil {
|
if err != nil {
|
||||||
return nil, e
|
return nil, err
|
||||||
}
|
}
|
||||||
for _, addr := range addresses {
|
for _, addr := range addresses {
|
||||||
if strings.Contains(addr.String(), ".") {
|
if strings.Contains(addr.String(), ".") {
|
||||||
var ip *net.TCPAddr
|
var ip *net.TCPAddr
|
||||||
ip, e = net.ResolveTCPAddr("tcp", strings.Split(addr.String(), "/")[0]+":0")
|
ip, err = net.ResolveTCPAddr("tcp", strings.Split(addr.String(), "/")[0]+":0")
|
||||||
if e != nil {
|
if err != nil {
|
||||||
log.Warnln(eth.Name+" ip解析失败:", e)
|
log.Warnln(eth.Name+" ip解析失败:", err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
return &Eth{
|
return &Eth{
|
||||||
@@ -38,19 +38,19 @@ func ConvertInterface(eth net.Interface) (*Eth, error) {
|
|||||||
func GetInterfaceAddr(regexpStr string) ([]Eth, error) {
|
func GetInterfaceAddr(regexpStr string) ([]Eth, error) {
|
||||||
var result []Eth
|
var result []Eth
|
||||||
|
|
||||||
interfaces, e := net.Interfaces()
|
interfaces, err := net.Interfaces()
|
||||||
if e != nil {
|
if err != nil {
|
||||||
return nil, e
|
return nil, err
|
||||||
}
|
}
|
||||||
reg, e := regexp.Compile(regexpStr)
|
reg, err := regexp.Compile(regexpStr)
|
||||||
if e != nil {
|
if err != nil {
|
||||||
log.Fatalln("interfaces设置异常,无法解析: ", e)
|
log.Fatalln("interfaces设置异常,无法解析: ", err)
|
||||||
}
|
}
|
||||||
for _, eth := range interfaces {
|
for _, eth := range interfaces {
|
||||||
if reg.Match([]byte(eth.Name)) {
|
if reg.Match([]byte(eth.Name)) {
|
||||||
cEth, e := ConvertInterface(eth)
|
cEth, err := ConvertInterface(eth)
|
||||||
if e != nil {
|
if err != nil {
|
||||||
log.Warnln(eth.Name+" 网卡地址获取失败: ", e)
|
log.Warnln(eth.Name+" 网卡地址获取失败: ", err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user