Ai
1 Star 0 Fork 0

邢楠/toolbox

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
libnet.go 2.07 KB
一键复制 编辑 原始数据 按行查看 历史
邢楠 提交于 2020-11-13 15:24 +08:00 . # 129
package com
import (
"net"
"os/exec"
"strconv"
"strings"
)
//获取本地IPV4地址
func GetLocalIPv4s() ([]string, error) {
var ips []string
addrs, err := net.InterfaceAddrs()
if err != nil {
return ips, err
}
for _, a := range addrs {
// 检查ip地址判断是否回环地址
if ipNet, ok := a.(*net.IPNet); ok && !ipNet.IP.IsLoopback() && ipNet.IP.To4() != nil {
ips = append(ips, ipNet.IP.String())
}
}
return ips, nil
}
//获取本地网卡地址
func GetLocalMacs() ([]string, error) {
var macs []string
netInterfaces, err := net.Interfaces()
if err != nil {
return macs, err
}
for i := 0; i < len(netInterfaces); i++ {
if (netInterfaces[i].Flags&net.FlagUp) != 0 && (netInterfaces[i].Flags&net.FlagLoopback) == 0 {
addrs, _ := netInterfaces[i].Addrs()
for _, address := range addrs {
ipNet, ok := address.(*net.IPNet)
if ok && !ipNet.IP.IsLoopback() && ipNet.IP.To4() != nil {
// 如果IP是全局单拨地址,则返回MAC地址
mac := netInterfaces[i].HardwareAddr.String()
macs = append(macs, mac)
}
}
}
}
return macs, nil
}
//获取IPV4及网卡地址
func GetLocalIPv4sMacs() ([]string, error) {
var macs []string
netInterfaces, err := net.Interfaces()
if err != nil {
return macs, err
}
for i := 0; i < len(netInterfaces); i++ {
if (netInterfaces[i].Flags&net.FlagUp) != 0 && (netInterfaces[i].Flags&net.FlagLoopback) == 0 {
addrs, _ := netInterfaces[i].Addrs()
for _, address := range addrs {
ipnet, ok := address.(*net.IPNet)
//fmt.Println(ipnet.IP)
if ok && ipnet.IP.IsGlobalUnicast() {
// 如果IP是全局单拨地址,则返回MAC地址
mac := netInterfaces[i].HardwareAddr.String()
macs = append(macs, ipnet.IP.String()+"/"+mac)
}
}
}
}
return macs, nil
}
//获取网卡数量
func GetLocalNetCount() int {
order2cmd := "ls /sys/class/net/ |wc -l"
out, err := exec.Command("/bin/bash", "-c", order2cmd).CombinedOutput()
if err != nil {
return 0
}
out2string := strings.TrimSpace(string(out))
out2int, _ := strconv.Atoi(out2string)
return out2int - 1
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/xingnan/toolbox.git
git@gitee.com:xingnan/toolbox.git
xingnan
toolbox
toolbox
v0.1.81

搜索帮助