如何通过广播地址从ifconfig获取IP地址?

huangapple go评论72阅读模式
英文:

How to get ip from ifconfig by broadcast addess?

问题

我在配置中有一个广播地址用于UDP数据包。

如何通过广播地址从服务器中获取IP地址(从ifconfig信息接口中获取)?

英文:

I have broadcast address in config for udp packages.

How to get ip address in server ( from ifconfig info interfaces ) by broadcast address ?

答案1

得分: 1

这段代码解决了你的问题吗?

import (
	"net"

	"github.com/pkg/errors"
)

func IpAddr() (string, error) {
	addrs, err := net.InterfaceAddrs()

	if err != nil {
		return "", err
	}

	for _, addr := range addrs {
		if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
			if ipnet.IP.To4() != nil {
				return ipnet.IP.String(), nil
			}
		}
	}
	return "", errors.New("无法确定本地IP地址")
}
英文:

Does this code solve your problem ?

import (
	"net"

	"github.com/pkg/errors"
)

func IpAddr() (string, error) {
	addrs, err := net.InterfaceAddrs()

	if err != nil {
		return "", err
	}

	for _, addr := range addrs {
		if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
			if ipnet.IP.To4() != nil {
				return ipnet.IP.String(), nil
			}
		}
	}
	return "", errors.New("unable to determine local ip")
}

huangapple
  • 本文由 发表于 2022年5月20日 16:35:24
  • 转载请务必保留本文链接:https://go.coder-hub.com/72315884.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定