golang ---网卡信息
2024-08-21 11:14:44
package main import (
"fmt"
"log"
"net"
"strings"
) type Network struct {
Name string
IP string
MACAddress string
} type intfInfo struct {
Name string
MacAddress string
Ipv4 []string
} func getNetworkInfo() error {
intf, err := net.Interfaces()
if err != nil {
log.Fatal("get network info failed: %v", err)
return err
}
var is = make([]intfInfo, len(intf))
for i, v := range intf {
ips, err := v.Addrs()
if err != nil {
log.Fatal("get network addr failed: %v", err)
return err
}
//此处过滤loopback(本地回环)和isatap(isatap隧道)
if !strings.Contains(v.Name, "Loopback") && !strings.Contains(v.Name, "isatap") {
var network Network
is[i].Name = v.Name
is[i].MacAddress = v.HardwareAddr.String()
for _, ip := range ips {
if strings.Contains(ip.String(), ".") {
is[i].Ipv4 = append(is[i].Ipv4, ip.String())
}
}
network.Name = is[i].Name
network.MACAddress = is[i].MacAddress
if len(is[i].Ipv4) > 0 {
network.IP = is[i].Ipv4[0]
} fmt.Printf("network:=", network)
} } return nil
} func main() {
getNetworkInfo()
}
最新文章
- (C#)使用NPOI导出Excel
- python基础总结篇——使用Mysql
- Log4j 简单应用
- tab标签切换
- 钉钉如何进行PC端开发
- # 20145334 《Java程序设计》第9周学习总结
- Python: 拷贝函数签名
- C++学习笔记5:如何给变量及函数命名?
- linux内核设计与实现--从内核出发
- JavaWeb核心编程之使用Eclipse开发JavaWEB项目
- UVA 10905 Children's Game (贪心)
- [转载]iOS开发之手势识别
- iOS8 UILocalNotification 添加启动授权
- 论文阅读笔记四十七:Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression(CVPR2019)
- [Swift]LeetCode924.尽量减少恶意软件的传播 | Minimize Malware Spread
- Java如何检查线程是否停止?
- (转)CentOS 7 —— /etc/rc.local 开机不执行 - 解决方法
- cxf之Exception in thread ";main"; java.lang.NoSuchMethodError: org.apache.cxf.jaxrs.provider.ProviderFactory.<;init>;(Lorg/apache/cxf/Bus;)V
- C#集合概述
- 三、OPENERP 中的对象关系类型