pinger

package
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 22, 2025 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

Package pinger - 平台能力接口定义 定义了跨平台的权限检测和pinger创建接口

Package pinger 配置定义

Package pinger - Linux非特权模式实现 使用SOCK_DGRAM类型的ICMP套接字,仅适用于Linux系统

Package pinger 选项模式支持

Package pinger 实现了core.DataSource接口,提供ping功能 根据操作系统和用户权限自动选择最合适的底层实现

Package pinger - 特权模式实现 使用原始套接字,需要管理员/root权限,但支持所有操作系统

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetImplementationType

func GetImplementationType() string

GetImplementationType 获取ping实现类型描述

func GetOSName

func GetOSName() string

GetOSName 获取操作系统名称

func GetPrivilegeStatus

func GetPrivilegeStatus() string

GetPrivilegeStatus 获取权限状态描述

func GetSystemInfo

func GetSystemInfo() (osName, privilegeStatus, implementationType string)

GetSystemInfo 获取完整的系统信息 返回操作系统名称、权限状态和实现类型

func HasPrivilegedAccess

func HasPrivilegedAccess() bool

HasPrivilegedAccess 检查是否有特权访问能力

func NewPinger

func NewPinger(targets []string, config *Config) (core.DataSource, error)

NewPinger 创建新的Pinger实例

func NewPingerWithOptions

func NewPingerWithOptions(targets []string, opts ...Option) (core.DataSource, error)

NewPingerWithOptions 使用选项模式创建Pinger

Types

type Config

type Config struct {
	IPVersion  int           // IP版本,4或6
	Interval   time.Duration // ping间隔时间
	Timeout    time.Duration // ping超时时间
	BufferSize int           // 数据通道缓冲区大小
}

Config pinger组件的配置结构

func DefaultConfig

func DefaultConfig() *Config

DefaultConfig 返回默认配置

func (*Config) GetIPProtocol

func (c *Config) GetIPProtocol() string

GetIPProtocol 获取IP协议字符串,用于网络操作

func (*Config) Validate

func (c *Config) Validate() error

Validate 验证配置的合理性

func (*Config) ValidateTargets

func (c *Config) ValidateTargets(targets []string) error

ValidateTargets 验证目标地址是否符合当前IP版本配置

type Option

type Option func(*Config)

Option 配置选项函数类型

func WithBufferSize

func WithBufferSize(size int) Option

WithBufferSize 设置缓冲区大小

func WithIPVersion

func WithIPVersion(version int) Option

WithIPVersion 设置IP版本

func WithInterval

func WithInterval(interval time.Duration) Option

WithInterval 设置ping间隔

func WithTimeout

func WithTimeout(timeout time.Duration) Option

WithTimeout 设置超时时间

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL