Gin:获取本机IP,获取访问IP

获取本机IP

复制代码
func GetLocalIP() []string {
  var ipStr []string
  netInterfaces, err := net.Interfaces()
  if err != nil {
      fmt.Println("net.Interfaces error:", err.Error())
      return ipStr
  }

  for i := 0; i < len(netInterfaces); i++ {
      if (netInterfaces[i].Flags & net.FlagUp) != 0 {
          addrs, _ := netInterfaces[i].Addrs()
          for _, address := range addrs {
              if ipnet, ok := address.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
                  //获取IPv6
                  /*if ipnet.IP.To16() != nil {
                      fmt.Println(ipnet.IP.String())
                      ipStr = append(ipStr, ipnet.IP.String())

                  }*/
                  //获取IPv4
                  if ipnet.IP.To4() != nil {
                      fmt.Println(ipnet.IP.String())
                      ipStr = append(ipStr, ipnet.IP.String())

                  }
              }
          }
      }
  }
  return ipStr

}

获取访问IP

复制代码
  //获取ip
func GetRequestIP(c *gin.Context)string{
    reqIP := c.ClientIP()
  if reqIP == "::1" {
      reqIP = "127.0.0.1"
  }
    return reqIP
}

参考来源:

go+gin获取本机ip和获取访问ip - 简书

相关推荐
逸巽散人2 小时前
【无标题】
网络
kaoa0003 小时前
Linux入门攻坚——77、虚拟化技术基础原理-2
linux·服务器·网络
沪漂阿龙3 小时前
面试题详解:大模型设计沙箱全攻略——LLM Sandbox、Agent 工具执行、代码沙箱、安全隔离、权限控制与工程落地
网络·数据库·人工智能·安全
牛奶3 小时前
抛弃TCP改用UDP,HTTP3疯了吗?
前端·tcp/ip·http3
qq_543447823 小时前
Tcping测速是什么?Tcping测速核心概念解析
服务器·网络·php
婷婷_1724 小时前
【PCIe 验证每日学习・Day36】PCIe 存储器寻址空间与 BAR 底层原理
网络·学习·程序人生·芯片·pcie
海南java第二人4 小时前
ClickHouse 自然语言统一查询:让数据对话成为现实
网络·数据库·clickhouse
.千余4 小时前
【Linux 】网络基础1
linux·运维·服务器·开发语言·网络·学习
小短腿的代码世界4 小时前
Qt低级网络编程与零拷贝技术在高频交易中的应用:从QTcpSocket到共享内存的全链路优化
开发语言·网络·qt
ACP广源盛139246256734 小时前
IX8024 对标 ASM2824 @ACP#搭配昆仑芯 P800 构建 AI 服务器 PCIe4.0 高速互联架构
网络·人工智能·嵌入式硬件·电脑