日期:2014-05-16  浏览次数:20448 次

拿访问网站用户IP 纯JS实现
后台拿IP
	String ip = request.getHeader("X-Forwarded-For");
	if (ip == null || ip.length() == 0
			|| "unknown".equalsIgnoreCase(ip)) {
		ip = request.getHeader("Proxy-Client-IP");
	}
	if (ip == null || ip.length() == 0
			|| "unknown".equalsIgnoreCase(ip)) {
		ip = request.getHeader("WL-Proxy-Client-IP");
	}
	if (ip == null || ip.length() == 0
			|| "unknown".equalsIgnoreCase(ip)) {
		ip = request.getHeader("HTTP_CLIENT_IP");
	}
	if (ip == null || ip.length() == 0
			|| "unknown".equalsIgnoreCase(ip)) {
		ip = request.getHeader("HTTP_X_FORWARDED_FOR");
	}
	if (ip == null || ip.length() == 0
			|| "unknown".equalsIgnoreCase(ip)) {
		ip = request.getRemoteAddr();
	}

但是由于公司有防火墙 每次都拿滴是防火墙的IP 192.168.92.2  所以根本没有办法统计实际IP 所以上述后台拿IP地址的方法就不行 
所以不能给公网地址 ,只能给内网地址(上不了外网) 这样就可以识别内网IP(但是这样外网用户就访问不了)
所以只能做一个判断 发现是防火墙IP 就跳转到内网访问地址。

用JS直接拿IP原理 其实就是通过开发API 在访问我们网站的时候 也访问其它网站 然后拿到后台查询IP地址 然后我们做操作放到前台
下面贴下JS直接拿IP代码
<script src="http://pv.sohu.com"></script>
document.write(returnCitySN.cip)

直接这样就可以  注意要用sohu的公共API  地址在上一篇文章里面
大家有问题 可以留言
PS:126邮箱有代码