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.mzph.cn/news/72292.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VSCode学习笔记一:添加代码模板

一目了然 1 简述2 设置模板3 Global Snippets file示例 1 简述 问:为什么要设置代码模板? 答:编程语言是有个性的,不同语言的演讲风格是不一样的。 旁白:我不懂?! 问:为什么要设置…

OpenPose

OpenPose Doc - Installation - Prerequisites

qt作业day4

//clock_exercise.cpp#include "clock_timer.h" #include "ui_clock_timer.h"//时间事件处理函数 void Clock_Timer::timerEvent(QTimerEvent *event) {if(event->timerId() time_id){sys_tm QDateTime :: currentDateTime(); // int year sy…

【c++】如何有效地利用命名空间?

​ 🌱博客主页:青竹雾色间 😘博客制作不易欢迎各位👍点赞⭐收藏➕关注 ​✨人生如寄,多忧何为 ✨ 目录 前言什么是命名空间?命名空间的语法命名空间的使用避免命名冲突命名空间的嵌套总结 前言 当谈到C编…

直播APP源码搭建:核心的服务器系统

在现代科技的推动下,网络衍生出了各种各样的技术,每个技术都被应用到需要的APP上,直播APP源码搭建出来的APP就是其中的一个,然而,这些技术能够成功的在直播APP源码搭建的APP中稳定的为用户们提供功能与服务&#xff0c…

芯科蓝牙BG27开发笔记-新建示例工程

此笔记的必要性 芯科的官方资料很丰富,并且ssv5中能方便索引到所需文档,不过大而全的问题就是找不到合适的切入点,更不会有本地化比较好的中文的系统的教程了。往往看到一个starting guide,会延伸其他starting guide,…

【Linux】Epoll Reactor【反应堆】模式的工作流程

Reactor模式的工作流程 主线程往epoll内核事件表中注册socket上的就绪事件。主线程调用epoll_wait等待socket上有数据可读。当socket上有数据可读时,epoll_wait通知主线程。主线程将socket可读事件放入请求队列。睡眠在请求队列上的某个工作线程被唤醒,…

ubuntu设置sudo免密

前提:有root权限 本质是修改/etc/sudoers 文件,但直接编辑这个文件容易改错造成系统异常,因此一般使用sudo visudo命令修改,这个命令保存时会检查文件格式,该命令会使用默认文本编辑器把/etc/sudoers 读到一个临时文件…

2023数学建模国赛C题思路--蔬菜类商品的自动定价与补货决策

C 题 蔬菜类商品的自动定价与补货决策 在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而变差, 大部分品种如当日未售出,隔日就无法再售。因此,商超通常会根据各商品的历史销售和需 求情况每天进…

Android MediaRecorder录音

1. 简介 在android中录制音频有两种方式,MediaRecorder和AudioRecord。两者的区别如下: MediaRecorder 简单方便,不需要理会中间录制过程,结束录制后可以直接得到音频文件进行播放;录制的音频文件是经过压缩的&#…

如何使用TensorFlow完成线性回归

线性回归是一种简单的预测模型,它试图通过线性关系来预测目标变量。在TensorFlow中,我们可以使用tf.GradientTape来跟踪我们的模型参数的梯度,然后用这个信息来优化我们的模型参数。 以下是一个简单的线性回归的例子: pythonimpo…

vulkan学习路径

1.学习路径 了解图形渲染基础知识: 学习计算机图形学基础概念,包括坐标系统、三角形渲染、光照模型等。可以参考经典的图形学教材,如《Real-Time Rendering》和《Computer Graphics: Principles and Practice》。了解图形API的发展历史&#…

用户多设备多账户同时在线场景、匿名用户行为同步到注册用户

随着移动设备的普及和社交媒体的发展,用户在多个设备上同时访问同一个应用成为了一种常见的现象。这些设备可能属于同一个用户,也可能属于不同的用户,而且有些用户可能没有注册账户,只是以匿名的方式访问应用。在这种多设备、多账户、匿名用户同时在线的场景下,如何保证数…

Docker从认识到实践再到底层原理(四-2)|Docker镜像仓库实战案例

前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量博客汇总 然后就是博主最近最花时间的一个专栏…

污水处理厂3D数字孪生三维可视系统降低设备风险隐患

当相对传统与保守的水务行业,与激进与开放的互联网发生碰撞之后,产生了最好的一个名词是:“智慧水务”,谈及智慧水务,自然免不了当下最具热度的技术“元宇宙”,水资源再生是我国追求高质量发展的新策略&…

软件测试/测试开发丨Selenium Web自动化多浏览器处理

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/27185 一、多浏览器测试介绍 1.1、多浏览器测试背景 用户使用的浏览器(firefox,chrome,IE 等)web 应用应该能在任何浏览器上正常的工作,这样…

springboot整合elasticsearch使用案例

引入依赖 <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId> </dependency> 添加注入 import org.apache.http.HttpHost; import org.elasticsearch.client.Res…

2594. 修车的最少时间

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;二分枚举答案 写在最后 Tag 【二分枚举答案】【数组】 题目来源 2594. 修车的最少时间 题目解读 给你一个表示机械工能力的数组 ranks&#xff0c;ranks[i] 表示第 i 位机械工可以在 r a n k s [ i ] ∗ n 2 ranks[…

[docker]笔记-存储管理

1、docker数据存储分为非永久性存储和永久性存储。 非永久性存储&#xff1a;容器创建会默认创建非永久性存储&#xff0c;该存储从属于容器&#xff0c;生命周期与容器相同&#xff0c;会随着容器的关闭而消失&#xff08;可理解为内存中数据&#xff0c;会随关机而消失&…

PHP表单token验证防CSRF攻击

在PHP中&#xff0c;表单token是一种安全机制&#xff0c;用于防止跨站请求伪造&#xff08;CSRF&#xff09;攻击。 CSRF攻击是一种利用用户身份在未经授权的情况下执行非法操作的攻击方式。 表单token的原理是在表单中生成一个随机的token&#xff0c;并将其存储在服务器端…