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()
}

  

最新文章

  1. (C#)使用NPOI导出Excel
  2. python基础总结篇——使用Mysql
  3. Log4j 简单应用
  4. tab标签切换
  5. 钉钉如何进行PC端开发
  6. # 20145334 《Java程序设计》第9周学习总结
  7. Python: 拷贝函数签名
  8. C++学习笔记5:如何给变量及函数命名?
  9. linux内核设计与实现--从内核出发
  10. JavaWeb核心编程之使用Eclipse开发JavaWEB项目
  11. UVA 10905 Children's Game (贪心)
  12. [转载]iOS开发之手势识别
  13. iOS8 UILocalNotification 添加启动授权
  14. 论文阅读笔记四十七:Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression(CVPR2019)
  15. [Swift]LeetCode924.尽量减少恶意软件的传播 | Minimize Malware Spread
  16. Java如何检查线程是否停止?
  17. (转)CentOS 7 —— /etc/rc.local 开机不执行 - 解决方法
  18. cxf之Exception in thread "main" java.lang.NoSuchMethodError: org.apache.cxf.jaxrs.provider.ProviderFactory.<init>(Lorg/apache/cxf/Bus;)V
  19. C#集合概述
  20. 三、OPENERP 中的对象关系类型

热门文章

  1. PHP 之循环创建文件夹
  2. 将爬取的实习僧网站数据传入HDFS
  3. 【软工实践】Alpha冲刺(4/6)
  4. JVM探究之 —— Java内存区域
  5. 安装EOS合约工具eosio.cdt
  6. Java并发包之阶段执行之CompletionStage接口
  7. vue---自定义指令的使用
  8. python爬虫案例:使用XPath爬网页图片
  9. openresty开发系列39--nginx+lua实现接口签名安全认证
  10. (转)scipy详解