go - 如何发现网络设备类型?

标签 go

在任何给定的计算机(OSX、WIn、Lin 等)上,都有任意数量的连接网络适配器...无论是 Wi-Fi、蓝牙、以太网还是其他...并且根据路由可能有多个有源设备。

在我的 NARROW 用例中,我想知道当前的 CONNECTED 默认适配器类型(Wi-Fi 等...),尽管一旦知道,很容易就会有一些其他的以及一些细节。

Here是一个主要工作的示例 shell 脚本,将它转换为 Go 很容易......在我看来必须有一种原生的 GO 方式。

最佳答案

您可以使用 Interfaces()来自 net包裹

示例:

package main

import (
    "fmt"
    "net"
)

func main() {
    l, err := net.Interfaces()
    if err != nil {
        panic(err)

    }
    for _, f := range l {
        if f.Flags&net.FlagUp > 0 {
            fmt.Printf("%s is up\n", f.Name)
        }
    }
}

关于go - 如何发现网络设备类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47355429/

相关文章:

go - 如何根据我发送给 Go 中的函数的变量返回特定类型的 slice

go - 无锁并发访问变量

go - 如何为 gRPC 服务器提供请求根上下文?

arrays - 为什么 cap 不打印底层数组的长度?

parsing - 使用 "go/parser"检查表达式是否为自定义类型

arrays - Go - 使用序列从 URL 下载文件

json - 如何替换 json 字符串和正则表达式中的双引号?

go - 带有 go get 的 Pin 版本

postgresql - 使用 go 的 sqlx 在 postgres 表中插入记录并自动生成 ID

go - golang 1.7.3 中 gzip Reader 的行为变化(与 1.6.3 相比)