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

news/2024/11/15 8:39:53/

1. 获取本机 IP 地址

package mainimport ("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的网卡IPfor _, addr := range addrs {// 这个网络地址是IP地址: ipv4, ipv6ipNet, isIpNet := addr.(*net.IPNet)if isIpNet && !ipNet.IP.IsLoopback() {// 跳过IPV6if ipNet.IP.To4() != nil {ipv4 = ipNet.IP.String() // 192.168.1.1return}}}return
}func main() {ipv4, _ := getLocalIP()fmt.Printf("ipv4 is <%s>", ipv4)
}

http://www.ppmy.cn/news/603208.html

相关文章

etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语

1. etcd 简介 etcd 官网定义&#xff1a; A highly-available key value store for shared configuration and service discovery. 即一个用于配置共享和服务发现的键值存储系统。 etcd 是一款分布式存储中间件&#xff0c;使用 Go 语言编写&#xff0c;并通过 Raft 一致性算…

etcd 笔记(02)— etcd 安装(apt 或 yum 安装 、二进制包安装、Docker 安装 etcd、etcd 前端工具 etcdkeeper、etcdv3-browser)

1. 使用 apt 或 yum 安装 etcd 命令如下&#xff1a; sudo apt-get install etcd或者 sudo yum install etcd这样安装的缺点是&#xff1a;安装的 etcd 版本过低为 2.2.5&#xff0c;该版本使用 Go 的版本为 1.6 如下所示&#xff1a; wohuubuntu-dev:~$ etcd 2021-04-17 0…

etcd 笔记(03)— etcd 客户端使用(键值的增、删、改、查)、watch监测键、lease使用(创建租约、撤销租约、刷新租期、查询租期)

1. etcd 客户端 etcdctl 是一个命令行客户端&#xff0c;便于我们进行服务测试或手动修改数据库内容&#xff0c;etcdctl 在两个不同的 etcd 版本&#xff08;v2 和 v3&#xff09;下的功能和使用方式也完全不同。 一般通过如下方式来指定使用 etcd 的版本&#xff1a; expo…

etcd 笔记(04)— etcd 网关与 gRPC 网关

1. etcd 网关 etcd 网关是一个简单的 TCP 代理&#xff0c;可将网络数据转发到 etcd 集群。网关是无状态且透明的&#xff0c;它既不会检查客户端请求&#xff0c;也不会干扰集群响应&#xff0c;支持多个 etcd 服务器实例&#xff0c;并采用简单的循环策略。 etcd 网关将请求…

etcd 笔记(05)— etcd 代码结构、各模块功能、整体架构、各模块之间的交互、请求和应答流程

1. etcd 项目结构和功能 etcd 项目代码的目录结构如下&#xff1a; $ tree ├── auth ├── build ├── client ├── clientv3 ├── contrib ├── embed ├── etcdctl ├── etcdmain ├── etcdserver ├── functional ├── hack ├── integration ├─…

etcd 笔记(06)— Client 结构定义、客户端(初始化、KV存储Get、Put、事务 Txn、压缩 Compact、Watch、Lease

1. Client 定义 Client 定义如下&#xff1a; type Client struct {ClusterKVLeaseWatcherAuthMaintenance// 认证的用户名Username string// 认证的密码Password string }这里显示的都是可导出的模块结构字段&#xff0c;代表了客户端能够使用的几大核心模块&#xff0c;具体…

etcd 笔记(07)— 键值对读写操作过程

1. 读写总体概述 etcd 各个模块交互的总览&#xff0c;如下图所示&#xff1a; 总体上的请求流程从上至下依次为客户端 → API 接口层 → etcd Server → etcd raft 算法库。 读请求 客户端通过负载均衡选择一个 etcd 节点发出读请求&#xff0c;API 接口层提供了 Range RP…

计算机图形学综述(一)

计算机已经成为快速、经济地生成图片的强大工具。实际上已经没有哪个领域不能从使用图形显示中获益&#xff0c;因此也就不奇怪为什么计算机图形学的应用是那么广泛。虽然早期的工程和科学上的应用必须依赖于昂贵而笨重的设备&#xff0c;但是计算机技术的发展已经将交互式计算…