- /*
- * Copyright 2001-2005 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- import java.io.*;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.net.SocketException;
- import java.net.UnknownHostException;
- import org.apache.commons.net.tftp.TFTP;
- import org.apache.commons.net.tftp.TFTPClient;
- import java.util.List;
- import java.util.ArrayList;
- /***
- * This is an example of a simple Java tftp client using NetComponents.
- * Notice how all of the code is really just argument processing and
- * error handling.
- * <p>
- * Usage: tftp [options] hostname localfile remotefile
- * hostname - The name of the remote host
- * localfile - The name of the local file to send or the name to use for
- * the received file
- * remotefile - The name of the remote file to receive or the name for
- * the remote server to use to name the local file being sent.
- * options: (The default is to assume -r -b)
- * -s Send a local file
- * -r Receive a remote file
- * -a Use ASCII transfer mode
- * -b Use binary transfer mode
- * <p>
- ***/
- public class Tftpmain
- {
- static final String USAGE =
- "Usage: tftp [options] hostname localfile remotefilenn" +
- "hostname - The name of the remote hostn" +
- "localfile - The name of the local file to send or the name to use forn" +
- "tthe received filen" +
- "remotefile - The name of the remote file to receive or the name forn" +
- "tthe remote server to use to name the local file being sent.nn" +
- "options: (The default is to assume -r -b)n" +
- "t-s Send a local filen" +
- "t-r Receive a remote filen" +
- "t-a Use ASCII transfer moden" +
- "t-b Use binary transfer moden"+
- "enter the config name all the way until you want to use the wordlist ex:n"+
- "d11_m_6120_bci* the star is where you stop and let the wordlist take overn"+
- "it automatically fills in a _c05.cm for you";
- public static int linecount = 0;
- public static String list;
- public static String configend = "_c05.cm";
- public static int configsfound;
- public static FileDescriptor empty = null;
- public static String large;
- public final static void main(String[] args)
- {
- ////READER PART
- List<String> wordList = new ArrayList<String>();
- BufferedReader reader = null;
- try{
- reader = new BufferedReader(new FileReader("wordlist.txt"));
- String word;
- while((word = reader.readLine())!=null)
- {
- linecount++;
- wordList.add(word);
- }
- }
- catch(IOException ex)
- {
- ex.printStackTrace();
- }
- try{
- reader.close();
- }
- catch(IOException ex)
- {
- ex.printStackTrace();
- }
- // this adds the words to the wordlistarray
- String[] wordlist = new String[wordList.size()];
- wordList.toArray(wordlist);
- // prints out contents for testing..
- ////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////
- boolean receiveFile = true, closed;
- int transferMode = TFTP.BINARY_MODE, argc;
- String arg, hostname, localFilename,localtemp,remotetemp, remoteFilename;
- TFTPClient tftp;
- // Parse options
- for (argc = 0; argc < args.length; argc++)
- {
- arg = args[argc];
- if (arg.startsWith("-"))
- {
- if (arg.equals("-r"))
- receiveFile = true;
- else if (arg.equals("-s"))
- receiveFile = false;
- else if (arg.equals("-a"))
- transferMode = TFTP.ASCII_MODE;
- else if (arg.equals("-b"))
- transferMode = TFTP.BINARY_MODE;
- else
- {
- System.err.println("Error: unrecognized option.");
- System.err.print(USAGE);
- System.exit(1);
- }
- }
- else
- break;
- }
- // Make sure there are enough arguments
- if (args.length - argc !=3 )
- {
- System.err.println("Error: invalid number of arguments.");
- System.err.print(USAGE);
- System.exit(1);
- }
- for(int i =0; i<wordlist.length;i++)
- {
- // Get host and file arguments
- hostname = args[argc];
- localtemp = args[argc +1];
- remotetemp = localtemp;
- large = args[argc +2];
- localFilename = (localtemp+wordlist[i]+configend);
- remoteFilename = localFilename;
- // Create our TFTP instance to handle the file transfer.
- tftp = new TFTPClient();
- // We want to timeout if a response takes longer than 60 seconds
- tftp.setDefaultTimeout(60000);
- // Open local socket
- try
- {
- tftp.open();
- }
- catch (SocketException e)
- {
- System.err.println("Error: could not open local UDP socket.");
- System.err.println(e.getMessage());
- System.exit(1);
- }
- // We haven't closed the local file yet.
- closed = false;
- // If we're receiving a file, receive, otherwise send.
- if (receiveFile)
- {
- FileOutputStream output = null;
- File file;
- file = new File(localFilename);
- // If file exists, don't overwrite it.
- if (file.exists())
- {
- System.err.println("Error: " + localFilename + " already exists.");
- //System.exit(1);
- }
- else if(!file.exists())
- {
- System.out.println(localFilename);
- }
- // Try to open local file for writing
- try
- {
- output = new FileOutputStream(file);
- }
- catch (IOException e)
- {
- tftp.close();
- System.err.println("Error: could not open local file for writing.");
- System.err.println(e.getMessage());
- //System.exit(1);
- }
- // Try to receive remote file via TFTP
- try
- {
- tftp.receiveFile(remoteFilename, transferMode, output, hostname);
- empty = output.getFD();
- if(file!=null)
- {
- configsfound++;
- }
- }
- catch (UnknownHostException e)
- {
- System.err.println("Error: could not resolve hostname.");
- System.err.println(e.getMessage());
- System.exit(1);
- }
- catch (IOException e)
- {
- System.err.println(
- "Error: I/O exception occurred while receiving file.");
- System.err.println(e.getMessage());
- //System.exit(1);
- }
- finally
- {
- // Close local socket and output file
- tftp.close();
- try
- {
- output.close();
- closed = true;
- }
- catch (IOException e)
- {
- closed = false;
- System.err.println("Error: error closing file.");
- System.err.println(e.getMessage());
- }
- }
- if (!closed)
- System.exit(1);
- }
- if(large.equals("s"))
- {
- try {
- Thread.sleep(100L); // one second
- }
- catch (Exception e) {} // this never happen... nobody check for it
- }
- }
- /*else
- {
- // We're sending a file
- FileInputStream input = null;
- // Try to open local file for reading
- try
- {
- input = new FileInputStream(localFilename);
- }
- catch (IOException e)
- {
- tftp.close();
- System.err.println("Error: could not open local file for reading.");
- System.err.println(e.getMessage());
- System.exit(1);
- }
- // Try to send local file via TFTP
- try
- {
- tftp.sendFile(remoteFilename, transferMode, input, hostname);
- }
- catch (UnknownHostException e)
- {
- System.err.println("Error: could not resolve hostname.");
- System.err.println(e.getMessage());
- System.exit(1);
- }
- catch (IOException e)
- {
- System.err.println(
- "Error: I/O exception occurred while sending file.");
- System.err.println(e.getMessage());
- System.exit(1);
- }
- finally
- {
- // Close local socket and input file
- tftp.close();
- try
- {
- input.close();
- closed = true;
- }
- catch (IOException e)
- {
- closed = false;
- System.err.println("Error: error closing file.");
- System.err.println(e.getMessage());
- }
- }
- if (!closed)
- */
- System.out.println("Number of configs found : " +configsfound);
- }
- }
Undefined
By: Guest | Date: Jan 5 2010 11:05 | Format: None | Expires: never | Size: 10.02 KB | Hits: 888
Latest pastes
1 days ago
2 days ago
4 days ago
6 days ago
6 days ago