我要求只允许一个用户使用一个登录ID和密码登录,这意味着不允许两个用户使用相同的用户名和id登录。所以我想在我的Db中创建一个字段存储ipaddress.Suppose A已经登录然后他的IP地址将存储在Db中,现在如果B想要登录,那么他将获得该用户已经登录的警报,并且IP地址是A的ipaddress。为此目的我正在使用
<%@ page import="java.net.*" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
out.println("remote address "+request.getRemoteAddr());
out.println("remote host "+request.getRemoteHost());
out.println("remote port "+request.getRemotePort());
out.println("remote user "+request.getRemoteUser());
//out.println(InetAddress.getLocalHost().getHostAddress());
out.println(request.getRemoteAddr());
//out.println(InetAddress.getLocalHost().getHostAddress().toString());
%>
</body>
</html>
但我没有得到确切的ipaddress.please告诉我如何获得ipaddress.if你认为这种方式在Db中存储ipadddress并警告重复用户是不明智的,那么你的建议也欢迎
remote address 0:0:0:0:0:0:0:1 remote host 0:0:0:0:0:0:0:1 remote port 38059 remote user null 0:0:0:0:0:0:0:1
答案 0 :(得分:0)
出于某种原因,request.getRemoteAddr()
不适合您。如果不了解你所在公司的网络,就不可能说出原因。
但是,您甚至不需要IP地址。如果用户当前已登录,请保留标记:
User | logged in?
-----+------------
A | Yes
B | No
C | No
现在,如果用户尝试登录,请检查他/她是否已登录。如果是,则显示错误消息并避免登录。
您需要重置此标志