首页 > 代码库 > 使用 go 写一个检测 tcp udp 状态的包
使用 go 写一个检测 tcp udp 状态的包
因为要跟着 dockerpool 的基友写 Docker 管理的程序,所以今年的目标是学习 go 语言。
看完 go 的入门教程,高深的代码还看不懂,所以决定先尝试写一些平常可以用的东西,mac 底下的 nc 命令可以检测很多东西,但是用着不习惯,所以决定写一个 check tcp udp 的包。
package main
import (
"flag"
"fmt"
"net"
)
const version = "0.1.0"
var Input_protocol = flag.String("p", "tcp", "The protocol you want to check")
func tcp(url string) int {
_, err := net.Dial("tcp", url)
if err != nil {
fmt.Println(err)
return 0
} else {
return 1
}
}
func udp(url string) int {
_, err := net.Dial("udp", url)
if err != nil {
fmt.Println(err)
return 0
} else {
return 1
}
}
func main() {
flag.Parse()
if flag.NArg() < 1 {
useage := "使用示例: check -p tcp 192.168.7.26:22 或者 check -p udp 192.168.7.23:123 "
fmt.Println(useage)
return
}
p := *Input_protocol
switch {
case p == "tcp":
r := tcp(flag.Args()[0])
fmt.Println(r)
case p == "udp":
r := udp(flag.Args()[0])
fmt.Println(r)
}
}
go build
go install
之后,就可以再命令行中使用了。
$ go build
$ go install
$ check
使用示例: check -p tcp 192.168.7.26:22 或者 check -p udp 192.168.7.23:123
$ check -p tcp www.sina.com:80
1
$ check -p tcp www.sina.com:88
dial tcp 61.172.201.20:88: connection refused
0
使用 go 写一个检测 tcp udp 状态的包
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。