admin 发表于 2021-12-28 00:13:46

golang:获取本地服务器ip地址(ipv4)

■实例说明
下面例子,用于获取本地机器ip地址
1)获取本地ip地址


■实例代码
package main

import (
      "errors"
      "fmt"
      "net"
)

// GetLocalIPv4 获取本地ipv4地址
func GetLocalIPv4() (ip string, err error) {
      addrList, err := net.InterfaceAddrs()
      if err != nil {
                return ip, err
      }
      for _, addr := range addrList {
                // 过滤掉回环地址
                if ipNet, ok := addr.(*net.IPNet); ok && !ipNet.IP.IsLoopback() {
                        ipv4 := ipNet.IP.To4()
                        // 如果ip不符合ipv4格式,继续查找下一个
                        if ipv4 == nil {
                              continue
                        }
                        return ipv4.String(), nil
                }
      }
      return ip, errors.New("no find ip address")
}

func main() {
      // 获取本地ip v4地址
      ip, err := GetLocalIPv4()
      if err != nil {
                ip = "192.168.1.1" // 默认地址
      }

      fmt.Printf("ip = %s\n", ip)
      // 输出:ip = 192.168.2.21
}
页: [1]
查看完整版本: golang:获取本地服务器ip地址(ipv4)