如何用Java实现IP地址的验证?
1)现有一个程序,使用“用户名和密码”登录,现在需要增加一个IP验证功能;
2)登录程序时输入“用户名和密码”;如果启用了“IP地址”验证(IPflag),可以自动验证登录的“IP地址“是否和数据库里面已经录入的“IP地址”一样。”用户名“和”密码“正确,“IP地址” 和数据库里面已经录入的“IP地址”不一样,登录失败;可以存在两个登录”IP地址“:user_ip1,user_ip2;
3)希望大家给点意见,谢谢
public class LoginAction extends Action { private Log log = LogFactory.getLog(LoginAction.class);
private LoginDAO myLoginDAO = null;
private HomePageDAO myHomePageDAO = null;
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response){
LoginForm myform = (LoginForm)form;
try {
//获取用户信息
//String IP = request.getRemoteAddr();
//InetAddress addr = InetAddress.getLocalHost();
//ip=addr.getHostAddress().toString;//获得本机IP
String userid = myform.getUserid();
String password = myform.getPassword();
String username = myform.getUsername();
String user_ip1 = myform.getUser_ip1();
//String user_ip2 = myform.getUser_ip2();
/* byte[] temp = username.getBytes("ISO-8859-1");
username = new String(temp,"GBK");
username = URLDecoder.decode(username);*/
String group = myform.getGroup(); //用户组和权限
//System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@ 登陆信息 @@@@@@@@@@@@@@@@@@@@@@@@@ 用户名username="+username+" 组group= "+group);
//group="eai_test1;eai_test2";
Vector userinfo = getLoginDAO().isExist(new String[]{userid,password});
if ( userinfo.size() == 0 ) {
request.getSession().setAttribute("loginerrinfo","口令或者密码错误!");
return mapping.findForward("falure");
} else {
String[] usrrow = (String[]) userinfo.elementAt(0);
username = usrrow[0];
}//获取用户名和密码
//Vector userip = getLoginDAO().isExist(new String[]{user_ip1,user_ip2});
//if(userip.size()>0){
// request.getSession().setAttribute("loginerrinfo","口令或者密码错误!");
// return mapping.findForward("falure");
// }else{
// String[] usrrow = (String[]) userip.elementAt(0);
// user_ip1 = usrrow[2];
// user_ip2 = usrrow[3];
//}//获取数据库的IP
Vector viewids = getLoginDAO().getEmpViewID(new String[]{userid});
if ( viewids.size() == 0 ) {
request.getSession().setAttribute("loginerrinfo","对不起,你没有登陆系统的权限!");
return mapping.findForward("falure");
} //获取组
User myUser = new User();
myUser.setUserid(userid);
myUser.setUsername(username);
myUser.setUser_ip1(user_ip1);
//myUser.setUser_ip2(user_ip2);
1)现有一个程序,使用“用户名和密码”登录,现在需要增加一个IP验证功能;
2)登录程序时输入“用户名和密码”;如果启用了“IP地址”验证(IPflag),可以自动验证登录的“IP地址“是否和数据库里面已经录入的“IP地址”一样。”用户名“和”密码“正确,“IP地址” 和数据库里面已经录入的“IP地址”不一样,登录失败;可以存在两个登录”IP地址“:user_ip1,user_ip2;
3)希望大家给点意见,谢谢
public class LoginAction extends Action { private Log log = LogFactory.getLog(LoginAction.class);
private LoginDAO myLoginDAO = null;
private HomePageDAO myHomePageDAO = null;
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response){
LoginForm myform = (LoginForm)form;
try {
//获取用户信息
//String IP = request.getRemoteAddr();
//InetAddress addr = InetAddress.getLocalHost();
//ip=addr.getHostAddress().toString;//获得本机IP
String userid = myform.getUserid();
String password = myform.getPassword();
String username = myform.getUsername();
String user_ip1 = myform.getUser_ip1();
//String user_ip2 = myform.getUser_ip2();
/* byte[] temp = username.getBytes("ISO-8859-1");
username = new String(temp,"GBK");
username = URLDecoder.decode(username);*/
String group = myform.getGroup(); //用户组和权限
//System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@ 登陆信息 @@@@@@@@@@@@@@@@@@@@@@@@@ 用户名username="+username+" 组group= "+group);
//group="eai_test1;eai_test2";
Vector userinfo = getLoginDAO().isExist(new String[]{userid,password});
if ( userinfo.size() == 0 ) {
request.getSession().setAttribute("loginerrinfo","口令或者密码错误!");
return mapping.findForward("falure");
} else {
String[] usrrow = (String[]) userinfo.elementAt(0);
username = usrrow[0];
}//获取用户名和密码
//Vector userip = getLoginDAO().isExist(new String[]{user_ip1,user_ip2});
//if(userip.size()>0){
// request.getSession().setAttribute("loginerrinfo","口令或者密码错误!");
// return mapping.findForward("falure");
// }else{
// String[] usrrow = (String[]) userip.elementAt(0);
// user_ip1 = usrrow[2];
// user_ip2 = usrrow[3];
//}//获取数据库的IP
Vector viewids = getLoginDAO().getEmpViewID(new String[]{userid});
if ( viewids.size() == 0 ) {
request.getSession().setAttribute("loginerrinfo","对不起,你没有登陆系统的权限!");
return mapping.findForward("falure");
} //获取组
User myUser = new User();
myUser.setUserid(userid);
myUser.setUsername(username);
myUser.setUser_ip1(user_ip1);
//myUser.setUser_ip2(user_ip2);
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货