golang查看本地ip

发布时间:2024-12-23 04:14:36

Golang是一种现代化的编程语言,其简洁的语法和高性能的执行速度使其成为众多开发者的首选。在开发过程中,我们经常需要获取本地IP地址来满足不同的需求。本文将介绍如何使用Golang来查看本地IP地址。

获取本地IP的方法

在Golang中,我们可以通过以下几种方法来获取本地IP地址:

方法一:使用net包

Golang提供了net包,其中的接口函数可以方便地用于网络操作。我们可以通过以下代码来查看本地IP地址:

package main import ( "fmt" "net" ) func main() { addrs, err := net.InterfaceAddrs() if err != nil { fmt.Println(err) } for _, addr := range addrs { ipnet, ok := addr.(*net.IPNet) if ok && !ipnet.IP.IsLoopback() { fmt.Println(ipnet.IP.String()) } } }

方法二:使用os包

除了net包,我们还可以使用os包来读取本地IP地址。下面是一个示例代码:

package main import ( "fmt" "os" ) func main() { hostname, err := os.Hostname() if err != nil { fmt.Println(err) } else { addrs, err := net.LookupIP(hostname) if err != nil { fmt.Println(err) } for _, addr := range addrs { if ipv4 := addr.To4(); ipv4 != nil { fmt.Println(ipv4) } } } }

方法三:使用第三方库

除了以上两种原生的方法,我们还可以使用第三方库来方便地获取本地IP地址。其中一种比较流行的库是github.com/sparrc/go-ping,它提供了简洁的接口来实现ping功能,并且可以通过它的API来获取本地IP地址。

package main import ( "fmt" "github.com/sparrc/go-ping" ) func main() { pinger, err := ping.NewPinger("google.com") if err != nil { fmt.Println(err) } pinger.Count = 1 pinger.Run() stats := pinger.Statistics() fmt.Println(stats.IPAddr) }

以上便是三种常用的方法来获取本地IP地址的示例代码。根据具体的需求,我们可以选择适合自己的方法来获取本地IP地址。Golang的强大特性使得获取本地IP地址变得非常简单和高效。

相关推荐