golang代码实例库

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4018|回复: 0

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

[复制链接]

82

主题

82

帖子

486

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
486
发表于 2021-12-28 00:13:46 | 显示全部楼层 |阅读模式
实例说明
下面例子,用于获取本地机器ip地址
1)获取本地ip地址


实例代码
[Golang] 纯文本查看 复制代码
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
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|golang代码实例库 ( 粤ICP备2021162396号 )

GMT+8, 2025-1-22 13:06 , Processed in 0.018849 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表