Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var Data = []byte("abcdefghijklmnopqrstuvwabcdefghi")
Data 是一个全球唯一的,长度为32的字节切片。 它用于存储预定义的字符序列,该序列由小写字母组成,不包含特殊字符或数字。 这个预定义的序列在程序中可能被用作标识符、加密种子或其他需要固定序列的场景。
Functions ¶
func FilterIP ¶ added in v1.1.0
FilterIP 过滤给定的IP地址列表,返回有效的IP地址数组。 该函数遍历每个输入的IP地址字符串,检查其是否为有效的IP地址。 如果是有效的IP地址,则将其添加到结果数组中;如果不是,则记录错误。 参数:
ips []string: 待检查的IP地址列表。
返回值:
[]string: 有效的IP地址列表。
func IsIP ¶ added in v1.1.0
IsIP 检查给定的字符串是否为有效的IP地址。 它首先尝试将字符串解析为一个IPv4或IPv6地址。如果解析失败, 则尝试将字符串解析为一个主机名,并通过DNS查找验证该主机名是否存在。 参数:
ip - 待检查的字符串,可能是IP地址或主机名。
返回值:
如果字符串是有效的IP地址或可解析的主机名,则返回true;否则返回false。
Types ¶
type Concurrency ¶ added in v1.1.0
type Concurrency struct { Addr []string // 需要并发ping的地址清单 Res sync.Map // 结果 Result map[string]bool Ch chan string // 结果通道 Wg *sync.WaitGroup // 并发控制 // 统计结果 Total int // 总数 Success int // 成功 Fail int // 失败 P *PingSet // ping参数 Err error // 错误 }
Concurrency 创建并发结构
func NewConcurrency ¶ added in v1.1.0
func NewConcurrency(ips []string) *Concurrency
NewConcurrency 初始化并返回一个 Concurrency 实例,该实例用于并发地对多个IP地址进行ping操作。 ips: 待检查的IP地址列表。 返回值: 一个 Concurrency 实例,包含了IP地址列表、结果通道、等待组等用于并发操作的字段。
func (*Concurrency) Start ¶ added in v1.1.0
func (c *Concurrency) Start()
Start 启动并发任务来检测一组地址的连通性。 该方法首先为每个地址添加到等待组中,然后并发地执行ping操作,最后等待所有ping操作完成并处理结果。
type PingSet ¶
type PingSet struct { Addr string // 地址指定要ping的目标主机或网络设备的IP地址或域名。 Conn net.Conn // Conn 保存了与目标主机建立的网络连接,用于发送和接收数据包。 Data []byte // Data 包含了要发送的数据包内容,通常为"ICMP ECHO REQUEST"的数据部分。 Timeout int // Timeout 指定了操作的超时时间,以秒为单位,用于控制ping操作的最长等待时间。 Req int // Req 表示要发送的ICMP ECHO REQUEST的数量,默认8 Print bool // Print 是否打印ping明细信息,默认:true }
PingSet 定义了一个用于网络ping操作的集合,包含所有必要的参数和状态。 它旨在支持自定义地址、数据包内容和超时设置的ping操作。
func New ¶ added in v1.0.1
New 执行ping操作。 它接受一个地址字符串,一个请求编号,和一串字节数据作为输入。 返回一个PingSet指针和一个错误值。 PingSet包含处理后的数据和最终确定的地址。
func (*PingSet) Close ¶
Close 释放PingSet对象所持有的网络连接资源。
该方法通过调用PingSet对象内部Conn字段的Close方法来实现资源的释放。 PingSet在使用完毕后,应该调用此方法来确保网络连接被正确关闭,避免资源泄露。
返回值:
该方法将Conn.Close()的返回值直接返回,因此调用者可以根据返回的error来判断关闭操作是否成功。
func (*PingSet) Dail ¶
Dail 方法用于建立到指定地址的ICMP连接。 它尝试通过IP协议族中的ICMP协议类型建立连接,如果失败,则返回错误。
参数:
pg *PingSet - 包含待连接地址信息的PingSet结构体指针。
返回值:
error - 如果建立连接过程中出现错误,则返回该错误;否则返回nil。
func (*PingSet) PingCount ¶
PingCount 发送指定数量的ping请求并收集回复。 参数count表示要发送的ping请求的数量。 返回值reply是一个包含所有ping请求回复的切片。
func (*PingSet) SetDeadline ¶
SetDeadline 为PingSet对象的连接设置超时 deadline。 参数timeout表示超时时间,单位为秒。 返回值为操作可能产生的错误。