Ai
1 Star 0 Fork 0

坐公交也用券/GoPing

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
new.go 1.16 KB
一键复制 编辑 原始数据 按行查看 历史
坐公交也用券 提交于 2024-07-20 12:50 +08:00 . 完成批量ping功能
package go_ping
import (
"gitee.com/liumou_site/logger"
"sync"
)
// NewConcurrency 初始化并返回一个 Concurrency 实例,该实例用于并发地对多个IP地址进行ping操作。
// ips: 待检查的IP地址列表。
// 返回值: 一个 Concurrency 实例,包含了IP地址列表、结果通道、等待组等用于并发操作的字段。
func NewConcurrency(ips []string) *Concurrency {
// 检查输入的IP地址列表是否为空
if len(ips) == 0 {
logger.Error("ips is nil")
// 如果为空,则返回一个空的Concurrency实例
return &Concurrency{}
}
// 过滤ips列表,剔除非IP地址的字符串
// 剔除非ip
ips = FilterIP(ips)
// 创建一个字符串通道,用于接收ping操作的结果
// 初始化
// 创建一个缓冲通道,用于接收ping的结果
ch := make(chan string, len(ips))
// 初始化一个等待组,用于并发操作结束后进行聚合
var wg sync.WaitGroup
// 返回一个初始化好的Concurrency实例
return &Concurrency{
Addr: ips,
Res: sync.Map{},
Result: make(map[string]bool),
Ch: ch,
Wg: &wg,
Total: 0,
Success: 0,
Fail: 0,
Err: nil,
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/liumou_site/GoPing.git
git@gitee.com:liumou_site/GoPing.git
liumou_site
GoPing
GoPing
v1.1.0

搜索帮助