当前位置: 首页 > news >正文

Golang 获取本地 IP 地址方法

在 Golang 中,使用 net 包可以很方便地获取到本机IP地址。

借助 net.InterfaceAddrs 方法

简单示例代码如下:

package mainimport ("fmt""net"
)func main() {addrList, err := net.InterfaceAddrs()if err != nil {panic(err)}for _, address := range addrList {if ipNet, ok := address.(*net.IPNet); ok && !ipNet.IP.IsLoopback() {if ipNet.IP.To4() != nil {fmt.Println(ipNet.IP.String())}}}
}

借助 net.Dial 方法

使用 udp 不需要关注是否送达,只需要对应的 ip 和 port 正确,即可获取到 IP 地址。简单示例代码如下:

package mainimport ("fmt""net""strings"
)func main() {conn, err := net.Dial("udp", "8.8.8.8:53")if err != nil {panic(err)}addr := conn.LocalAddr().(*net.UDPAddr)ip := strings.Split(addr.String(), ":")[0]fmt.Println(ip)
}

http://www.lryc.cn/news/101808.html

相关文章:

  • 抖音seo短视频账号矩阵系统技术开发简述
  • 运维高级--shell脚本完成分库分表
  • Mysql 忘记密码怎么重置密码(详细步骤)
  • 机器学习深度学习——图像分类数据集
  • 【PWN · 栈迁移】[BUUCTF]ciscn_2019_es_2
  • 网络编程(13): 网络通信常用命令(后续待补充)
  • flask创建数据库连接池
  • C语言手撕顺序表
  • 常见的排序算法
  • C#如何使用SQLite数据库?
  • 如何将表格中的状态数据转换为Tag标签显示
  • centos中修改防火墙端口开放配置
  • 程序设计 算法基础
  • 【数据结构】之十分好用的“链表”赶紧学起来!(第一部分单向链表)
  • ubuntu开机自启动
  • Git将其他分支合并至主分支
  • Python+request+pytest 接口自动化测试框架入门(与unittest的比较)
  • 数据结构——复杂度
  • 使用goldengate 迁移Oracle到postgresql
  • ESP-C3入门20. CentOS开发环境及Jenkins流水线
  • 服务器被爬虫恶意攻击怎么办?
  • JavaScript正则表达式之座机号/手机号验证校验规则
  • 黑客学习手册(自学网络安全)
  • 获取非叶子节点的grad(retain_grad()、hook)【为了解决grad值是None的问题】
  • JMeter(八):响应断言详解
  • 【网络编程】IO复用的应用一:非阻塞connect
  • Spring注解开发,bean的作用范围及生命周期、Spring注解开发依赖注入
  • C#设计模式之---原型模式
  • STM32入门学习之外部中断
  • Jenkins 配置maven和jdk