package main

import ( "fmt" "io/ioutil" "net/http" "net/url" "os" "strconv"

"github.com/lxn/walk"

)

const ( certUrl = "http://mitm.it/cert/p12" certPath = %USERPROFILE%\Desktop\mitmproxy-ca-cert.p12 iniPath = %USERPROFILE%\HC.ini )

func downloadCert() error { url, err := url.Parse(certUrl) if err != nil { return err } client := &http.Client{ Transport: &http.Transport{Proxy: http.ProxyURL(url)}, } resp, err := client.Get(certUrl) if err != nil { return err } defer resp.Body.Close() data, err := ioutil.ReadAll(resp.Body) if err != nil { return err } err = ioutil.WriteFile(os.ExpandEnv(certPath), data, 0644) if err != nil { return err } return nil }

func setINI(name string) error { path := os.ExpandEnv(iniPath) config := fmt.Sprintf("[general] name=%s ", name) return ioutil.WriteFile(path, []byte(config), 0644) }

func main() { var input *walk.LineEdit var err error if len(os.Args) > 1 { input, err = walk.NewLineEditFromString(os.Args[1]) if err != nil { fmt.Println(err) return } } else { input = new(walk.LineEdit) } if err := walk.MainWindow{ Title: "设置编号", MinSize: walk.Size{Width: 300, Height: 50}, Layout: walk.VBox{}, Children: []walk.Widget{ input, &walk.PushButton{ Text: "确认", OnClicked: func() { if input.Text() == "" { walk.MsgBox(nil, "错误", "请输入编号", walk.MsgBoxIconError) if err := downloadCert(); err != nil { fmt.Println(err) } if err := setINI(""); err != nil { fmt.Println(err) } } else { if err := setINI(input.Text()); err != nil { fmt.Println(err) } if err := downloadCert(); err != nil { fmt.Println(err) } walk.MsgBox(nil, "信息", "设置完成,证书已下载到桌面,请手动安装", walk.MsgBoxIconInformation) } walk.App().Exit(0) }, }, }, }.Create(); err != nil { fmt.Println(err) return }

if _, err := input.SetFocus(); err != nil {
    fmt.Println(err)
    return
}

if err := walk.Run(); err != nil {
    fmt.Println(err)
    return
}

}

Go语言实现配置编号并下载证书到桌面

原文地址: https://www.cveoy.top/t/topic/nROq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录