gns

package module
v1.8.4 Latest Latest
Warning

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

Go to latest
Published: Mar 9, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

README

🌐 gns - Go Network Suite

Go Version License Version

使用Go编写的网络模块,提供网络状态检测、信息获取、IP管理等功能

💡 支持IPv4/IPv6双栈 | 📊 提供详细的网络质量统计 | 🎯 智能网络评估

📋 目录

✨ 功能特性

🚀 状态检测
功能 描述 状态
ICMP PING检测 支持原生ICMP和系统ping命令双模式
PING统计功能 提供丢包率、RTT(往返时间)详细统计
批量PING检测 支持网段批量ping测试
网络质量评估 基于丢包率和延迟的智能评估
📡 信息获取
功能 描述
本机IP地址获取 支持IPv4/IPv6局域网地址
公网IP地址获取 支持IPv4/IPv6公网地址检测
网络接口信息获取 详细的网卡信息(IP、MAC、网关、DNS)
网关信息获取 自动获取默认网关地址
DNS服务器获取 获取网卡配置的DNS服务器列表
🎯 IP管理
功能 描述
IPv4/IPv6地址获取 完整支持双栈地址管理
公网IP地址获取 通过多个API服务获取真实公网IP
子网IP范围计算 基于CIDR计算可用IP范围
CIDR地址解析 支持IPv4/IPv6的CIDR解析
网段扫描 自动发现本地网络网段
🛠️ 工具功能
功能 描述
浏览器URL打开 跨平台URL打开支持
网络诊断工具 综合网络诊断功能
权限检测 Windows管理员权限自动检测
🌐 路由追踪
功能 描述 状态
多协议支持 支持ICMP、TCP、UDP三种协议
并发探测 多跳并发探测,速度快
进度回调 支持实时进度回调,便于UI展示
多种输出格式 支持Text、Table、JSON、CSV、Markdown
系统命令调用 支持调用系统traceroute/tracert命令

📖 查看详细文档Traceroute路由追踪模块

🚀 快速开始

📦 安装
# 使用go get安装
go get -u gitee.com/liumou_site/gns

# 或者使用go mod
go mod tidy
🔧 基础用法
package main

import "gitee.com/liumou_site/gns"

// 创建统一管理实例
manager := gns.NewGNSManager(false)

// 快速Ping测试
result, _ := manager.Ping.ICMPWithStats("baidu.com", 3, false)

// 获取网络信息
ethList := manager.Eth.GetEthList()
publicIP, _ := manager.IP.GetPublicIPv4()

📖 查看完整示例代码使用示例文档

API 接口

📚 完整API文档 - 包含所有结构体和方法的详细说明

快速参考
模块 主要功能 关键方法
GNSManager 统一管理 NewGNSManager()
Ping 网络检测 ICMPWithStats() ICMP() Batch()
Eth 网卡管理 GetEthList() GetEthInfoV4() GetDNSServers()
IP 地址管理 GetPublicIPv4() CIDRToIPRange() GetDefaultNetworkSubnet()
Tools 工具功能 OpenUrl()
Traceroute 路由追踪 QuickTraceroute() Traceroute() BatchTraceroute()
核心数据结构
// Ping统计结果
type PingResult struct {
    Target      string        // 目标主机
    PacketsSent int           // 发送包数
    LossRate    float64       // 丢包率(%)
    AvgRTT      time.Duration // 平均延迟
    Quality     string        // 网络质量评级
}

📖 查看完整API文档API接口文档

快速示例
使用 GNSManager 的综合示例
package main

import (
    "fmt"
    "log"

    "github.com/lingchuan/gns"
)

func main() {
    gns := gns.NewGNSManager(false)
    
    // 网络质量检测
    result, _ := gns.Ping.ICMPWithStats("8.8.8.8", 5, false)
    fmt.Printf("目标: %s, 丢包率: %.1f%%, 质量: %s\n", 
        result.Target, result.LossRate, result.Quality)
    
    // 获取公网IP
    ipv4, _ := gns.IP.GetPublicIPv4()
    fmt.Printf("公网IPv4: %s\n", ipv4)
}
详细示例文档

📖 完整示例代码使用示例文档

示例文档内容分类
  • 🚀 快速开始 - 基础使用示例
  • 🎯 Ping功能 - 网络检测和批量测试
  • 🌐 网络接口 - 网卡管理和DNS配置
  • 🗺️ IP管理 - 公网IP获取和子网计算
  • 🛠️ 工具功能 - 实用工具集成
  • 🔧 高级用法 - 网络监控和诊断
  • 🌐 路由追踪 - Traceroute路由追踪功能
快速导航
API接口文档

📚 完整API文档API接口文档

文档内容
  • 🏗️ GNSManager - 统一管理结构体
  • 🎯 Ping模块 - 网络检测功能
  • 🌐 Eth模块 - 网络接口管理
  • 🗺️ IP模块 - IP地址管理
  • 🛠️ Tools模块 - 工具功能
  • 🌐 Traceroute模块 - 路由追踪功能
  • 📊 数据结构 - 核心结构体定义
版本信息

当前版本: v1.8.3

查看版本:

import "gitee.com/liumou_site/gns"

func main() {
    gns.Version() // 输出: v1.8.3
}
测试和示例
测试文件 功能说明
状态检测 基础网络状态检测
网络接口 网卡信息获取测试
IPv4获取 公网IPv4地址获取
IPv6获取 公网IPv6地址获取
Ping测试 ICMP Ping功能测试
统计示例 网络质量统计示例
路由追踪 Traceroute路由追踪测试
运行测试
# 运行所有测试
go test ./...

# 运行Ping功能测试
go test ./test/ping/ -v

# 运行网络接口测试
go test ./eth/... -v

# 运行IP功能测试
go test ./ip/... -v

# 运行路由追踪测试
go test ./traceroute/... -v
注意事项
  • 管理员权限: Windows系统下ICMP功能需要管理员权限,程序会自动检测并切换到系统ping命令
  • 防火墙: 确保防火墙允许ICMP流量
  • UAC: 建议以管理员身份运行以获得最佳ICMP性能
IPv6支持
  • 自动检测系统IPv6支持情况
  • 支持链路本地地址、站点本地地址和全球单播地址
  • 自动过滤无效和回环地址
网络环境要求
  • 需要稳定的网络连接进行公网IP检测
  • 某些企业网络可能会限制ICMP流量
  • 移动网络可能会影响延迟测试结果
依赖信息
module gitee.com/liumou_site/gns

go 1.22.0

require (
    gitee.com/liumou_site/gbm v1.1.7
    gitee.com/liumou_site/gcs v1.8.3
    gitee.com/liumou_site/logger v1.2.1
    github.com/spf13/cast v1.7.1
    golang.org/x/net v0.35.0
)
问题反馈
开源协议

本项目基于 MIT License 开源协议发布。

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewEth added in v1.5.1

func NewEth(debug bool) *eth.Eth

NewEth 创建并初始化一个 eth.Eth 实例。

func NewIP added in v1.6.0

func NewIP() *ip.IPManager

NewIP 创建并初始化一个 ip.IPManager 实例。

func NewOnlineDetector added in v1.6.3

func NewOnlineDetector(ips []string, portNum int, pingCount, pingTimeout, portTry, portTimeout int) *detect.OnlineDetector

NewOnlineDetector 创建并初始化一个 detect.OnlineDetector 实例

func NewPing added in v1.2.6

func NewPing(count, timeout int) *ping.Ping

NewPing 创建并初始化一个 ping.Ping 实例。

func NewTools added in v1.6.0

func NewTools() *tools.ToolsManager

NewTools 创建并初始化一个 tools.ToolsManager 实例。

func Version

func Version()

Types

type GNSManager added in v1.6.0

type GNSManager struct {
	Ping  *ping.Ping
	Eth   *eth.Eth
	IP    *ip.IPManager
	Tools *tools.ToolsManager
}

GNSManager 主管理结构体,绑定所有子模块功能

func NewGNSManager added in v1.6.0

func NewGNSManager(debug bool) *GNSManager

NewGNSManager 创建并初始化一个新的GNSManager实例

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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