NutzCN Logo
问答 Nutz如何获取客户的IP地址?
发布于 3027天前 作者 toypigeon 2352 次浏览 复制 上一个帖子 下一个帖子
标签:

抄了一段代码,不知道科学不

	public String userInfo(@Param("data") String data,
			HttpServletRequest req){
		String ip = req.getHeader("x-forwarded-for");
		if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
			ip = req.getHeader("Proxy-Client-IP");
		}
		if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
			ip = req.getHeader("WL-Proxy-Client-IP");
		}
		if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
			ip = req.getRemoteAddr();
		}
		return ip;
	}
12 回复

能work啦

来自炫酷的 NutzCN

@wendal 有人提出Lang.getIP()?

何不点开getIp方法,看看里面如何实现的?

来自炫酷的 NutzCN

code:

@At("/user/login")
    @Ok("json")
    public Object login(@Param("..") UserEntity user, HttpServletRequest req) {
        System.out.println(Lang.getIP(req));
}

log:

0:0:0:0:0:0:0:1

本机运行拿不到IP,远程试了下没问题。

ipv6的地址?

用127.0.0.1来访问就好了

我本意是要拿v4的,本机的开发环境(服务端和访问客户端在同一台机器)测下来就这个结果

ok了,tomcat启动参数加上 -Djava.net.preferIPv4Stack=true就可以了。
最近用了nutz的表达式引擎,很6,感谢。

添加回复
请先登陆
回到顶部