最近迷上土拨鼠(golang)了 真香,不仅语法简单,开发快,运行也快,内存占用还少,最重要的是发布后就一个可执行文件,拷到哪里都能用

package main
import (
"fyne.io/fyne"
"fyne.io/fyne/app"
"fyne.io/fyne/widget"
"net"
"os"
)
const server = "whois.internic.net"
/**
whois 查询
*/
func query(domain string) (string, error) {
conn, err := net.Dial("tcp", server+":43")
if err != nil {
return "", err
}
defer conn.Close()
conn.Write([]byte(domain + "\r\n"))
var buffer = make([]byte, 2048)
n, err := conn.Read(buffer)
if err != nil {
return "", err
}
return string(buffer[:n]), nil
}
/**
golang实现的whois查询小工具
*/
func main() {
os.Setenv("FYNE_THEME", "light")
a := app.New()
w := a.NewWindow("whois tools v1.0")
w.Resize(fyne.NewSize(600, 350))
w.CenterOnScreen()
domainEntry := widget.NewEntry()
resultEntry := widget.NewMultiLineEntry()
queryButton := widget.NewButton("query", func() {
result, err := query(domainEntry.Text)
if err != nil {
resultEntry.SetText("ERROR: " + err.Error())
} else {
resultEntry.SetText("")
resultEntry.SetText(result)
}
})
w.SetFixedSize(false)
w.SetContent(widget.NewVBox(
domainEntry,
queryButton,
resultEntry,
))
w.ShowAndRun()
}