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 小时前
探讨一个OSPF中NSSA类型的问题
网络
luj_17682 小时前
R语言生态优势与学习曲线分析
c语言·开发语言·网络·经验分享·算法
库拉大叔2 小时前
GPT-5.5 新手快速上手与实战指南
网络·人工智能·gpt
AI科技星2 小时前
万有引力G与真空介电常数ε0全维度完整关系式汇编(基于v=c螺旋时空理论)
c语言·开发语言·前端·javascript·网络·汇编·electron
co_wait3 小时前
【OSPF协议】华为OSPF多区域配置
网络
magic_now3 小时前
Modbus RTU 与 TCP 学习笔记
笔记·学习·tcp/ip
一拳一个娘娘腔3 小时前
【SRC漏洞挖掘系列】第17期:漏洞组合拳(Chain Exploit)—— 把“蚊子”养成“恐龙”
网络·安全·web安全
网安情报局3 小时前
拆解DDoS攻击的核心套路
网络
广州灵眸科技有限公司4 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) 开发套件组装上电
网络·数据库·人工智能·算法·飞书
去码头整点薯条984 小时前
网络实验报告7
网络