-
Notifications
You must be signed in to change notification settings - Fork 0
xmac
omeyang edited this page Sep 17, 2026
·
1 revision
稳定性:Stable · 覆盖率:98.2% · 源码:
pkg/util/xmac
MAC 地址工具。多格式解析、Go 1.23+ iter.Seq 区间迭代、批量收集。
- 解析多种 MAC 格式(
aa:bb:cc:dd:ee:ff/aa-bb-.../aabb.ccdd.eeff/ 裸 hex) - MAC 范围迭代(生成连续 N 个、或两 MAC 之间)
- 批量收集到 slice
import "github.com/omeyang/xkit/pkg/util/xmac"
m, _ := xmac.Parse("aa:bb:cc:dd:ee:ff")
fmt.Println(m.String())
// Go 1.23+ iter
for addr := range xmac.RangeN(m, 100) {
process(addr)
}
list := xmac.CollectN(xmac.RangeN(m, 10), 10)
total := xmac.RangeCount(start, end)| 名称 | 说明 |
|---|---|
Addr |
6 字节 MAC,值类型 |
Format uint8 |
序列化格式(Canonical/Cisco/Bare 等) |
Parse / MustParse / ParseBytes / FromHardwareAddr |
解析 |
Zero / Broadcast |
特殊地址 |
Range / RangeN / RangeWithIndex / RangeReverse / RangeReverseWithIndex |
iter.Seq / iter.Seq2 迭代 |
CollectN / Count / RangeCount |
聚合 |
AddrToUint64 / Uint64ToAddr |
uint64 互转 |
AddrFrom6([6]byte) |
字节数组构造 |
-
iter.Seq优先:Go 1.23+ 标准,可与slices包组合 -
uint64转换:方便排序、做哈希 key - Format 枚举:避免字符串魔法值