package main
import (
"errors"
"fmt"
"net"
)
func main() {
ip, err := GetInterfaceIpv4Addr("eth0")
if err != nil {
fmt.Println(err)
}
fmt.Println(ip)
}
func GetInterfaceIpv4Addr(interfaceName string) (addr string, err error) {
var (
ief *net.Interface
addrs []net.Addr
ipv4Addr net.IP
)
if ief, err = net.InterfaceByName(interfaceName); err != nil { // get interface
return
}
if addrs, err = ief.Addrs(); err != nil { // get addresses
return
}
for _, addr := range addrs { // get ipv4 address
if ipv4Addr = addr.(*net.IPNet).IP.To4(); ipv4Addr != nil {
break
}
}
if ipv4Addr == nil {
return "", errors.New(fmt.Sprintf("interface %s don't have an ipv4 address\n", interfaceName))
}
return ipv4Addr.String(), nil
}
go 获取指定网卡的ip
最新推荐文章于 2023-11-24 14:45:01 发布