Go 学习笔记(79)— Go 标准库 net(获取本机IP地址)

1. 获取本机 IP 地址

package main

import (
	"fmt"
	"net"
)

// 获取本机网卡IP
func getLocalIP() (ipv4 string, err error) {
	// var (
	// 	addrs []net.Addr
	// 	addr net.Addr
	// 	ipNet *net.IPNet // IP地址
	// 	isIpNet bool
	// )
	// 获取所有网卡
	addrs, err := net.InterfaceAddrs()
	if err != nil {
		return
	}
	// 取第一个非lo的网卡IP
	for _, addr := range addrs {
		// 这个网络地址是IP地址: ipv4, ipv6
		ipNet, isIpNet := addr.(*net.IPNet)
		if isIpNet && !ipNet.IP.IsLoopback() {
			// 跳过IPV6
			if ipNet.IP.To4() != nil {
				ipv4 = ipNet.IP.String() // 192.168.1.1
				return
			}
		}
	}

	return
}

func main() {
	ipv4, _ := getLocalIP()
	fmt.Printf("ipv4 is <%s>", ipv4)
}
上一篇:ubuntu 开启ip转发的方法


下一篇:CentOS7.X 系统优化