黑马程序员技术交流社区

标题: 限制ip怎么做 [打印本页]

作者: 陌路行者    时间: 2013-7-15 15:49
标题: 限制ip怎么做
  1. import java.io.*;
  2. import java.net.*;
  3. class LoginClient
  4. {
  5.         public static void main(String[] args)throws Exception
  6.         {
  7.                 Socket s = new Socket("192.168.1.12",8866);
  8.                 System.out.println("请输入用户名");
  9.                 BufferedReader bufr =
  10.                         new BufferedReader(new InputStreamReader(System.in));

  11.                 PrintWriter out = new PrintWriter(s.getOutputStream(),true);

  12.                
  13.                 BufferedReader bufIn =
  14.                         new BufferedReader(new InputStreamReader(s.getInputStream()));

  15.                 for(int i=0;i<3;i++)
  16.                 {
  17.                         String line = bufr.readLine();
  18.                        
  19.                         if(line==null)
  20.                                 break;
  21.                         out.println(line);
  22.                        
  23.                         String info = bufIn.readLine();
  24.                         System.out.println(info+"");
  25.                         if(info.contains("欢迎"))
  26.                                 break;
  27.                 }
  28.                 bufr.close();
  29.                 s.close();
  30.         }
  31. }
  32. class UserThread implements Runnable
  33. {
  34.         private Socket s;
  35.         UserThread(Socket s)
  36.         {
  37.                 this.s = s;
  38.         }
  39.         public void run()
  40.         {
  41.                 String ip = s.getInetAddress().getHostAddress();
  42.                 System.out.println(ip+"...........connected");
  43.                 try
  44.                 {
  45.                         for(int i=3;i>0;i--)
  46.                         {
  47.                                 BufferedReader bufIn =
  48.                                         new BufferedReader(new InputStreamReader(s.getInputStream()));

  49.                                 BufferedReader bufr =
  50.                                         new BufferedReader(new FileReader("userInfo.txt"));

  51.                                 PrintWriter out = new PrintWriter(s.getOutputStream(),true);

  52.                                 String name = bufIn.readLine();
  53.                                 if(name==null)
  54.                                         break;

  55.                                 String line = null;

  56.                                 boolean flag = false;

  57.                                 while((line=bufr.readLine())!=null)
  58.                                 {
  59.                                         if(line.equals(name))
  60.                                                 flag = true;
  61.                                         break;
  62.                                 }
  63.                                
  64.                                 if(flag)
  65.                                 {
  66.                                         System.out.println("已登陆");
  67.                                         out.println(name+"登陆成功,欢迎光临");
  68.                                         break;
  69.                                 }
  70.                                 else
  71.                                 {
  72.                                         System.out.println(ip+"尝试登陆");
  73.                                         if(i==1)
  74.                                         {
  75.                                                 out.println("登陆受限,请30分钟后重试");
  76.                                         }
  77.                                         else
  78.                                                 out.println(name+"登陆失败,请检查您的用户名!还剩"+(i-1)+"次机会");
  79.                                 }
  80.                                        

  81.                         }
  82.                         s.close();
  83.                 }
  84.                 catch (Exception e)
  85.                 {
  86.                         throw new RuntimeException(ip+"校验失败");
  87.                 }
  88.                
  89.         }
  90.        
  91. }
  92. class LoginServer
  93. {
  94.         public static void main(String[] args)throws Exception
  95.         {
  96.                 ServerSocket ss = new ServerSocket(8866);

  97.                 while(true)
  98.                 {
  99.                         Socket s = ss.accept();
  100.                         new Thread(new UserThread(s)).start();
  101.                 }
  102.         }
  103. }
复制代码


作者: 许庭洲    时间: 2013-7-18 06:11
值得学习ing!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2