快速获取游客和用户IP的具体实现方法

26 篇文章 0 订阅
20 篇文章 0 订阅

废话不多说,贴代码!

<pre name="code" class="html"><!DOCTYPE html>
<html>
<head>
	<title>Get my IP</title>
</head>
<body>
	<a href="http://www.whatsmyip.us">whatsmyip</a> My Real IP is: <script type="text/javascript" src="http://www.whatsmyip.us/showipsimple.php"></script>
	<script type="text/javascript">
		document.write("<br/>");
	</script>
	<a href="http://pv.sohu.com/cityjson?ie=utf-8">Sohu API</a>  My IP Info: <script type="text/javascript" src="http://pv.sohu.com/cityjson?ie=utf-8">
	</script>
	<script type="text/javascript">
		var cip = returnCitySN.cip;
		var cid = returnCitySN.cid;
		var cname = returnCitySN.cname;
		document.write("IP is:" + cip + "  " + "Address is:" + cname);
	</script>
	<script type="text/javascript">
		document.write("<br/>");
	</script>
	<a href="http://whois.pconline.com.cn/ipJson.jsp?callback=myip">PConline[太平洋] API</a>
	<script type="text/javascript">
	/**
	 * [myip description] 这儿用到了回调函数,myip({"ip":"27.17.140.49","pro":"湖北省","proCode":"420000","city":"武汉市","cityCode":"420100","region":"","regionCode":"0","addr":"湖北省武汉市 电信","regionNames":""});,我们可以看到,回调函数myip()里面有参数,仔细观察不难发现是json型数据,我们在回调函数里面用obj去获取它,这个参数随便定都可以,然后哦这个参数就是我们获取的这个json型数据了.
	 * @param  {[type]} obj [description] 与返回的json型数据一一对应
	 * @return {[type]}     [description]
	 */
	function myip(obj){
		document.write("IP is:" + obj.ip + "  " + "Address is:" + obj.addr);
	}
	</script>	
	<script type="text/javascript" src="http://whois.pconline.com.cn/ipJson.jsp?callback=myip"></script>
	
</body>
</html>

 相比大家应该一目了然,自己可以把代码copy下去自己是一下就知道了。 


在Spring Boot中,我们可以使用拦截器(Interceptor)来实现游客点赞根据IP进行限制。 首先,我们需要定义一个拦截器来拦截用户点赞请求,判断该IP地址当天是否已经点过赞。如果已经点过赞,则返回错误提示信息;否则,允许用户进行点赞。 ```java public class LikeInterceptor implements HandlerInterceptor { private static final Map<String, Set<String>> LIKE_RECORDS = new HashMap<>(); @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String ipAddress = request.getRemoteAddr(); String articleId = request.getParameter("articleId"); // 判断该IP地址当天是否已经点过赞 Set<String> likeRecords = LIKE_RECORDS.getOrDefault(ipAddress, new HashSet<>()); if (likeRecords.contains(articleId)) { response.getWriter().write("您已经点过赞了!"); return false; } // 如果没有点过赞,则记录该IP地址和文章ID,允许用户进行点赞 likeRecords.add(articleId); LIKE_RECORDS.put(ipAddress, likeRecords); return true; } } ``` 上面的代码中,我们定义了一个`LikeInterceptor`拦截器,其中`LIKE_RECORDS`用于记录每个IP地址当天点赞的文章ID。在`preHandle`方法中,我们首先获取用户IP地址和文章ID,然后判断该IP地址当天是否已经点过赞。如果已经点过赞,则返回错误提示信息;否则,记录该IP地址和文章ID,允许用户进行点赞。 接下来,我们需要将拦截器添加到Spring Boot应用中。在我们的配置类中,使用`addInterceptor`方法将`LikeInterceptor`拦截器添加到Spring Boot应用中。 ```java @Configuration public class WebMvcConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LikeInterceptor()).addPathPatterns("/like"); } } ``` 上面的代码中,我们将`LikeInterceptor`拦截器添加到路径为`/like`的请求中。这样,当用户发送点赞请求时,拦截器会拦截请求并进行IP地址限制。 最后,我们需要在前端页面中发送点赞请求,将文章ID作为参数传递给后端。例如,我们可以在前端页面中使用jQuery发送点赞请求: ```javascript $.ajax({ url: "/like", type: "POST", data: { articleId: 123 }, success: function (data) { alert(data); } }); ``` 上面的代码中,我们使用POST方式发送点赞请求,将文章ID作为参数传递给后端。如果后端返回错误提示信息,则弹出提示框显示错误信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值