Golang实现端口检测

您所在的位置:网站首页 linux查看ip端口是否运行 Golang实现端口检测

Golang实现端口检测

2023-11-10 23:33| 来源: 网络整理| 查看: 265

有时处于内网环境,且不能随意去安装命令,去检测机器端口是否开启就很麻烦,那就意味着shell、python就不好用了,因为需要去安装命令、依赖等,这时使用Go就是一个很好的选择,编译后放在机器,直接就能运行。 在这里,写一个脚本,通过接收ip:port的方式去检测端口

脚本

checkPort.sh

package main import ( "fmt" "net" "os" "time" ) // 获取IP和端口 func getIpPort() []string { // 根据接收参数个数,定义动态数组, ip_ports := make([]string, len(os.Args)-1) i := 0 for index, value := range os.Args { //排除脚本名称 if index == 0 { continue } //写入数组 ip_ports[i] = value i++ } return ip_ports } // 检测端口 func checkPorts(ip_ports []string) { now := time.Now().Format("2006-01-02 15:04:05") for _, ip_port := range ip_ports { // 检测端口 conn, err := net.DialTimeout("tcp", ip_port, 3*time.Second) if err != nil { fmt.Println("["+now+"]", ip_port, "端口未开启(fail)!") } else { if conn != nil { fmt.Println("["+now+"]", ip_port, "端口已开启(success)!") conn.Close() } else { fmt.Println("["+now+"]", ip_port, "端口未开启(fail)!") } } } } func main() { ret := getIpPort() checkPorts(ret) }

编译后在Linux上行

cmd命令行配置环境变量 SET CGO_ENABLE=0 //禁用CGO SET GOOS=linux //目标平台 SET GOARCH=amd64 编译 go build checkPort.go 编译后就会获取一个checkPort的二进制文件 checkPort 放到linux机器赋权 chmod +x checkPort

运行 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3