Golang获取本地IP地址方法,目前了解两种,记录如下:
方法1:

func main() {addrs, err := net.InterfaceAddrs()if err != nil {fmt.Println(err)return}for _, address := range addrs {// 检查ip地址判断是否回环地址if ipnet, ok := address.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {if ipnet.IP.To4() != nil {fmt.Println(ipnet.IP.String())}}}
}

此方法无法直接获取到对外的IP,只能判断IPv4和非回环地址,多IP情况还需要额外进行判断

func GetOutBoundIP()(ip string, err error)  {conn, err := net.Dial("udp", "8.8.8.8:53")if err != nil {fmt.Println(err)return}localAddr := conn.LocalAddr().(*net.UDPAddr)fmt.Println(localAddr.String())ip = strings.Split(localAddr.String(), ":")[0]return
}
func main() {ip, err := GetOutBoundIP()if err != nil {fmt.Println(err)}fmt.Println(ip)
}

该方法可直接获取到对外的IP,使用udp的优点不需要关注是否送达,只需要对应的{ip}:{port}结构正确,即可获取到IP地址。
这里使用TCP也是可以的,只是需要保证对应的{ip}:{port}连通性。

【Golang】获取本地IP相关推荐

  1. golang 获取本地ip

    2019独角兽企业重金招聘Python工程师标准>>> package mainimport ("fmt""net""strings ...

  2. golang 获取公网ip 内网ip 检测ip类型 校验ip区间 ip地址string和int转换 判断ip地区国家运营商

    目录 简要简介net包 什么是外网IP和内网IP? 获取公网ip 获取本地ip 判断是否是公网ip ip地址string转int ip地址int转string 判断ip地址区间 通过淘宝接口根据公网i ...

  3. 【Qt】获取本地IP(IPv4)

    1.问题描述 获取本地IP列表有"127.0.0.1".IPv4.IPv6等,一般使用IPv4,如何从已经获取的IP列表中挑出IPv4. 2.解决方法 QString ipv4; ...

  4. Linux C 获取本地 ip mac 域名对应 ip

    获取本地 ip 地址,mac,通过域名获取对应的 ip, 是网络编程可能遇到的比较常见的操作了,所以总结如下(封装了3个函数), 直接上代码: #include <stdio.h> #in ...

  5. //获取本地IP地址和对端IP地址

    1 //获取本地IP地址 2 CHAR * GetLocalIpAdrr(int fd) 3 { 4 struct sockaddr_in stHost; 5 memset(&stHost, ...

  6. 获取本地ip地址适用于windows和Linux环境

    简写版本 package com.gblfy.util;import java.net.Inet4Address; import java.net.InetAddress; import java.n ...

  7. C/C++获取本地IP(适用于多种操作系统)

    前言 下面列举多种方法获取本地IP,这些方法在linux系统下均可运行,有些方法亦可以在Windows和Android下运行. 源码 /*下列几种方法均优先输出非回环IP:127.0.0.1  ine ...

  8. Linux下编程获取本地IP地址的常见方法

    代码编译运行平台:Linux 64bits+g++(-m64),-m64表示生成64bits的程序. 在进行Linux网络编程时,经常用到本机IP地址.本文罗列一下常见方法,以备不时之需. 获取本机I ...

  9. android 获取wifi的ip地址吗,Android开发实现在Wifi下获取本地IP地址的方法

    本文实例讲述了Android开发实现在Wifi下获取本地IP地址的方法.分享给大家供大家参考,具体如下: 代码核心介绍: WifiManager类提供了对设备Wifi功能的管理,包括Wifi开关的打开 ...

最新文章

  1. Swift 条件编译,编译标记
  2. BZOJ 3156: 防御准备( dp + 斜率优化 )
  3. MySQL-过滤数据
  4. 巅峰对话:畅想大数据时代的车联网与智能汽车
  5. 解释型语言和编译型语言的区别_从泛型的使用情况看出你对语言的理解程度(2)...
  6. java使用hashset_JAVA中Set集合--HashSet的使用
  7. apache hbase的region 分割与合并
  8. 2021年行政区划代码(含经纬度)mysql库
  9. ARM PWN基础教程
  10. 【LDO带载能力和两端压差有关】
  11. element ui 手动清除表单效验提示语
  12. IDEA版本控制:文件导航各种颜色含义
  13. linux 函数式编程,理解函数式编程_Linux编程_Linux公社-Linux系统门户网站
  14. 蛋白质二级结构预测-Chou-Fasman预测方法
  15. hdf heg 批量拼接_MODIS处理工具MRT已被HEG代替
  16. 珠海沙龙PPT已上传!
  17. 编译原理学习笔记(十七)~自上而下语法分析之构造预测分析表
  18. 1.5 20:球弹跳高度的计算
  19. flex 布局写出麻将一到九筒
  20. java 控制鼠标点击_java 如何实现控制鼠标点击

热门文章

  1. Excel导出模板加数据时,下拉框丢失解决方案
  2. 修改服务器端数据库,问道1.6 开区 服务器环境配置 数据库修改 服务端启动教程...
  3. 基本数据类型之整数类型变量
  4. 【业务分析】如何设计A/B test,以及如何对实验结果检验、结果分析?
  5. zbb20181006 maven配置阿里云中央仓库
  6. windows获取显卡的显存
  7. Keil的安装及使用
  8. 我弟今年高考,报的志愿是电子信息,到现在录取的是计算机科学与技术,哪个专业更好一些,2021年电子信息科学与技术专业大学排名及分数线【统计表】...
  9. SOA、RMI、RPC、Rest、RestFul、Soap、WebService 详解
  10. InstructGPT