richcms(Go)获取IP地址的方法

richcms是一个使用golang+mysql开发的通用cms系统,今天分享richcms系统中获取IP地址的方法。richcms的在线文档地址:使用文档 - RichCMS此页面汇总了所有RichCMS安装、使用相关的文档,请从以下内容中,快速找到你需要的部分。icon-default.png?t=O83Ahttps://www.richcms.net/docs 

func getIP(c *gow.Context) (ip string) {
	ip = c.GetHeader("X-Original-Forwarded-For")
	if ip == "" {
		ip = c.GetHeader("Remote-Host")
	}
	if ip == "" {
		ip = c.GetHeader("X-Real-IP")
	}
	if ip == "" {
		ip = c.GetHeader("X-Forwarded-For")
	}
	if ip == "" {
		addr := c.Request.RemoteAddr
		ip, _, _ = net.SplitHostPort(addr)
	}
	if ip == "" {
		ip = "10.10.10.2"
	}
	ips := strings.Split(ip, ",")
	if len(ips) > 0 {
		ip = ips[0]
	}
	ip = strings.TrimSpace(ip)
	netIP := net.ParseIP(ip)
	if netIP != nil {
		return ip
	}
	return ip
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值