2013-05-02 6 views
0

У меня есть требование, чтобы только один пользователь мог войти в систему, используя один идентификатор входа и пароль, а это означает, что двум пользователям будет разрешено входить в систему, используя те же имя пользователя и идентификатор. поэтому я решил сделать поле в своем Db для хранения ipaddress.Suppose A зашел в систему, тогда его ip-адрес будет сохранен в Db, и теперь, если B хочет войти в систему, он получит предупреждение о том, что этот пользователь уже зарегистрировался, и IP-адрес ipaddress.and A для этой цели я используюне может получить IP-адрес удаленного компьютера

<%@ 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 вы думаете, этот способ хранения 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 
+1

Если кому-то не нравится вопрос, он может оставить комментарий здесь, но downvoting без надлежащей причины не является хорошим. – 2013-05-02 05:28:53

+0

Что выдавал 'request.getRemoteAddr()'? Вы запускаете это приложение внутри интрасети компании или оно доступно извне? – Uooo

+0

@ w4rumy Я отредактировал вопрос, и вывод также добавлен – 2013-05-02 05:36:06

ответ

0

По какой-то причине, request.getRemoteAddr() не работает для вас. Невозможно сказать, почему, зная сеть компании, в которой вы работаете.

Однако для этого вам даже не нужен IP-адрес. Просто держать флаг, если пользователь в настоящее время вошли в систему:.

User | logged in? 
-----+------------ 
A | Yes 
B | No 
C | No 

Теперь, если пользователь пытается войти, проверьте, если он/она уже вошел в таком случае на экран сообщение об ошибке и избежать входа.

Вам нужно сбросить этот флаг

  • Когда пользователь выходит из системы (нажав на кнопку «Выход»)
  • После сеанса времени ожидания (вы можете использовать HttpSessionListener для этого), в том случае, пользователь не нажал «выйти из системы». Примечание: Если у вас высокий тайм-аут сеанса (например, 30 минут), и пользователь забывает нажать «выйти», он/она не сможет войти в систему для остальной части сеанса.
  • После того, как приложение перераспределено, если все сеансы будут уничтожены.
+0

спасибо за ответ, но этот способ будет выглядеть просто. если получение ipaddress невозможно, это может быть сделано для автоматического выхода из системы. я хочу сказать, что предположим, что A входит в систему с именем пользователя X, и теперь, когда B пытается войти в систему с тем же именем пользователя X, то при выходе из стороны в стороне будет происходить автоматически, и если кто-то попытается что-то сделать, это приведет его к странице входа. может быть возможно. Пожалуйста, спросите меня, если вы не можете понять, что я хочу сказать – 2013-05-02 05:59:00

+0

@ javaL Конечно, это можно сделать, но это совсем другой вопрос. Вы также можете сохранить 'jsessionid', который идентифицирует текущий« действительный »сеанс для пользователя и регистрирует его/автоматически, если у него есть другой' jsessionid'. Не стесняйтесь задавать другой вопрос о Stackoverflow, когда вы сталкиваетесь с проблемой реализации этого. – Uooo

+0

Я не задаю вопрос, потому что я получаю downvoting – 2013-05-02 06:07:21

Смежные вопросы