Advertisement
Guest User

COmerme los ocojones

a guest
Nov 24th, 2016
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.83 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.io.PrintWriter;
  5. import java.net.Socket;
  6. import java.util.stream.Stream;
  7.  
  8. /**
  9.  * Created by ubuntu on 11/24/16.
  10.  */
  11. public class FtpClient {
  12.     private Socket controlSocket;
  13.  
  14.     private String address;
  15.     private String username;
  16.     private String password;
  17.  
  18.     public FtpClient(String address) {
  19.         this(address, "anonymous", "");
  20.     }
  21.  
  22.     public FtpClient(String address, String username, String password) {
  23.         this.address  = address;
  24.         this.username = username;
  25.         this.password = password;
  26.  
  27.         try {
  28.             controlSocket = new Socket(address, 21);
  29.         } catch (IOException e) {
  30.             // TODO
  31.             e.printStackTrace();
  32.         }
  33.     }
  34.  
  35.     public boolean connect() throws IOException {
  36.         String returnCode;
  37.  
  38.         send("");
  39.         returnCode = send("USER " + username);
  40.  
  41.         // 331 = User name okay, need password.
  42.         if(!returnCode.contains("331")) return false;
  43.  
  44.         returnCode = send("PASS " + password);
  45.  
  46.         // 230 = Login successful.
  47.         return returnCode.contains("230");
  48.     }
  49.  
  50.     public void enterPasv() throws IOException {
  51.         String returnedMsg = send("PASV");
  52.  
  53.         // 227 Entering Passive Mode (90,130,70,73,96,29)
  54.         if(returnedMsg.contains("227")) {
  55.             // TODO..
  56.             try {
  57.                 new Socket("90.130.70.73", getPort(returnedMsg));
  58.             } catch (IOException e) {
  59.                 e.printStackTrace();
  60.             }
  61.         }
  62.     }
  63.  
  64.     private int getPort(String message) {
  65.         int      i         = message.indexOf("(") + 1;
  66.         int      j         = message.indexOf(")");
  67.         String[] arrayPasv = message.substring(i, j).split(",");
  68.         int      p1        = Integer.parseInt(arrayPasv[4]);
  69.         int      p2        = Integer.parseInt(arrayPasv[5]);
  70.  
  71.         return Integer.decode(
  72.                 "0x" + Integer.toHexString(p1) + Integer.toHexString(p2));
  73.     }
  74.  
  75.     public String send(String message) throws IOException {
  76.         return send(message, true);
  77.     }
  78.  
  79.     public String send(String message, boolean waitAnswer) throws IOException {
  80.         // First sends the packet
  81.         PrintWriter out = new PrintWriter(controlSocket.getOutputStream(), true);
  82.         out.println(message);
  83.         System.out.println("Sending message to the server: " + message);
  84.  
  85.         // If the packet has any answer returns it...
  86.         if(waitAnswer) {
  87.             BufferedReader reader = new BufferedReader(new InputStreamReader(controlSocket.getInputStream()));
  88.             String         msg    = reader.readLine();
  89.  
  90.             System.out.println("Returned message: " + msg);
  91.             return msg;
  92.         }
  93.  
  94.         return "";
  95.     }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement