【Golang】获取本地IP
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相关推荐
- golang 获取本地ip
2019独角兽企业重金招聘Python工程师标准>>> package mainimport ("fmt""net""strings ...
- golang 获取公网ip 内网ip 检测ip类型 校验ip区间 ip地址string和int转换 判断ip地区国家运营商
目录 简要简介net包 什么是外网IP和内网IP? 获取公网ip 获取本地ip 判断是否是公网ip ip地址string转int ip地址int转string 判断ip地址区间 通过淘宝接口根据公网i ...
- 【Qt】获取本地IP(IPv4)
1.问题描述 获取本地IP列表有"127.0.0.1".IPv4.IPv6等,一般使用IPv4,如何从已经获取的IP列表中挑出IPv4. 2.解决方法 QString ipv4; ...
- Linux C 获取本地 ip mac 域名对应 ip
获取本地 ip 地址,mac,通过域名获取对应的 ip, 是网络编程可能遇到的比较常见的操作了,所以总结如下(封装了3个函数), 直接上代码: #include <stdio.h> #in ...
- //获取本地IP地址和对端IP地址
1 //获取本地IP地址 2 CHAR * GetLocalIpAdrr(int fd) 3 { 4 struct sockaddr_in stHost; 5 memset(&stHost, ...
- 获取本地ip地址适用于windows和Linux环境
简写版本 package com.gblfy.util;import java.net.Inet4Address; import java.net.InetAddress; import java.n ...
- C/C++获取本地IP(适用于多种操作系统)
前言 下面列举多种方法获取本地IP,这些方法在linux系统下均可运行,有些方法亦可以在Windows和Android下运行. 源码 /*下列几种方法均优先输出非回环IP:127.0.0.1 ine ...
- Linux下编程获取本地IP地址的常见方法
代码编译运行平台:Linux 64bits+g++(-m64),-m64表示生成64bits的程序. 在进行Linux网络编程时,经常用到本机IP地址.本文罗列一下常见方法,以备不时之需. 获取本机I ...
- android 获取wifi的ip地址吗,Android开发实现在Wifi下获取本地IP地址的方法
本文实例讲述了Android开发实现在Wifi下获取本地IP地址的方法.分享给大家供大家参考,具体如下: 代码核心介绍: WifiManager类提供了对设备Wifi功能的管理,包括Wifi开关的打开 ...
最新文章
- Swift 条件编译,编译标记
- BZOJ 3156: 防御准备( dp + 斜率优化 )
- MySQL-过滤数据
- 巅峰对话:畅想大数据时代的车联网与智能汽车
- 解释型语言和编译型语言的区别_从泛型的使用情况看出你对语言的理解程度(2)...
- java使用hashset_JAVA中Set集合--HashSet的使用
- apache hbase的region 分割与合并
- 2021年行政区划代码(含经纬度)mysql库
- ARM PWN基础教程
- 【LDO带载能力和两端压差有关】
- element ui 手动清除表单效验提示语
- IDEA版本控制:文件导航各种颜色含义
- linux 函数式编程,理解函数式编程_Linux编程_Linux公社-Linux系统门户网站
- 蛋白质二级结构预测-Chou-Fasman预测方法
- hdf heg 批量拼接_MODIS处理工具MRT已被HEG代替
- 珠海沙龙PPT已上传!
- 编译原理学习笔记(十七)~自上而下语法分析之构造预测分析表
- 1.5 20:球弹跳高度的计算
- flex 布局写出麻将一到九筒
- java 控制鼠标点击_java 如何实现控制鼠标点击
热门文章
- Excel导出模板加数据时,下拉框丢失解决方案
- 修改服务器端数据库,问道1.6 开区 服务器环境配置 数据库修改 服务端启动教程...
- 基本数据类型之整数类型变量
- 【业务分析】如何设计A/B test,以及如何对实验结果检验、结果分析?
- zbb20181006 maven配置阿里云中央仓库
- windows获取显卡的显存
- Keil的安装及使用
- 我弟今年高考,报的志愿是电子信息,到现在录取的是计算机科学与技术,哪个专业更好一些,2021年电子信息科学与技术专业大学排名及分数线【统计表】...
- SOA、RMI、RPC、Rest、RestFul、Soap、WebService 详解
- InstructGPT