[golang]获取本机IP

简介: [golang]获取本机IP

前言

方便在内网环境中获取服务器本机IP,省了在脚本中过滤ipifconfig的结果。

如果内网中有nginx的话,通过nginx获取本机IP也很方便,可参考 借助nginx自动获取本机IP

示例代码

package main
import (
  "fmt"
  "net"
  "strings"
)
func GetOutBoundIP() (ip string, err error) {
  // 使用udp发起网络连接, 这样不需要关注连接是否可通, 随便填一个即可
  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)
}

参考

相关文章
|
网络协议 Go
golang判断ip地址是ipv4还是ipv6
golang判断ip地址是ipv4还是ipv6
通过Golang获取公网IP地址
在Go语言中,获取当前的外网(公网)IP地址可以通过多种方法实现。其中一种常见的方法是通过访问外部服务来获取。这些服务可以返回访问者的公网IP地址,例如 httpbin.org/ip 或 ipify.org。下面是一个简单的例子,展示了如何使用Go标准库中的net/http包和io/ioutil包来实现这一功能。
通过Golang获取公网IP地址
|
Go Java C++
Golang每日一练(leetDay0031) 解码方法、复原 IP 地址
Golang每日一练(leetDay0031) 解码方法、复原 IP 地址
182 0
Golang每日一练(leetDay0031) 解码方法、复原 IP 地址
|
Go API 定位技术
使用Golang实现HTTP代理突破IP访问限制
使用Golang实现HTTP代理突破IP访问限制
|
网络协议 Go 数据库
golang是用GeoIP数据库解析IP到城市jsonRPC服务教程
RESTful接口 请求URL: https://api.turboes.com/Tbsapi/v1/ip2addr?ip=219.140.227.235 请求方式: GET 参数: 参数名 类型 说明 ip url-qurey-string 可选 要查询的ip地址,如果不传这表示当前.
4698 0
|
2月前
|
存储 安全 Java
【Golang】(4)Go里面的指针如何?函数与方法怎么不一样?带你了解Go不同于其他高级语言的语法
结构体可以存储一组不同类型的数据,是一种符合类型。Go抛弃了类与继承,同时也抛弃了构造方法,刻意弱化了面向对象的功能,Go并非是一个传统OOP的语言,但是Go依旧有着OOP的影子,通过结构体和方法也可以模拟出一个类。
183 1
|
Go
Golang语言之管道channel快速入门篇
这篇文章是关于Go语言中管道(channel)的快速入门教程,涵盖了管道的基本使用、有缓冲和无缓冲管道的区别、管道的关闭、遍历、协程和管道的协同工作、单向通道的使用以及select多路复用的详细案例和解释。
640 4
Golang语言之管道channel快速入门篇
|
Go
Golang语言文件操作快速入门篇
这篇文章是关于Go语言文件操作快速入门的教程,涵盖了文件的读取、写入、复制操作以及使用标准库中的ioutil、bufio、os等包进行文件操作的详细案例。
248 4
Golang语言文件操作快速入门篇
|
Go
Golang语言之gRPC程序设计示例
这篇文章是关于Golang语言使用gRPC进行程序设计的详细教程,涵盖了RPC协议的介绍、gRPC环境的搭建、Protocol Buffers的使用、gRPC服务的编写和通信示例。
536 3
Golang语言之gRPC程序设计示例
|
安全 Go
Golang语言goroutine协程并发安全及锁机制
这篇文章是关于Go语言中多协程操作同一数据问题、互斥锁Mutex和读写互斥锁RWMutex的详细介绍及使用案例,涵盖了如何使用这些同步原语来解决并发访问共享资源时的数据安全问题。
300 4

推荐镜像

更多