/* Package: GeekTools Whois Java Client 1.0 File: Whois.java (Java source file) Author: Erik C. Thauvin Comments: Part of the GeekTools Whois Java Client package. See the README.TXT file for more information. Copyright (C) 2000 SkyTouch Communications. All Rights Reserved. This program is distributed under the terms of the GNU General Public License as published by the Free Software Foundation. See the COPYING.TXT file for more information. $Id$ */ import java.net.Socket; import java.io.*; import java.util.Properties; public class Whois { // The truth is out there! public static void main(String[] args) { // Display usage if there are no command line arguments if (args.length < 1) { System.out.println( "Usage: java Whois query[@]"); return; } // Default server is whois.geektools.com String server = "whois.geektools.com"; // Default server port is 43 int port = 43; // Load the properties file. try { FileInputStream in = new FileInputStream("Whois.properties"); Properties app = new Properties(); app.load(in); // Get the server property server = (app.getProperty("server", server)); // Get the port property String tmp = app.getProperty("port"); try { port = Integer.parseInt(tmp); } catch (NumberFormatException e) { // Do nothing! } in.close(); } catch (FileNotFoundException e) { // Do nothing! } catch (IOException e) { System.err.println( "Whois: an error occurred while loading the properties file: " + e); } // Build the whois query using command line arguments String query = args[0]; for (int i = 1; i < args.length; i++) { query += (" " + args[i]); } // The whois server can be specified after "@" // e.g.: query@whois.networksolutions.com int at = query.lastIndexOf("@"); int len = query.length(); if ((at != -1)) { // Remove the @ if last character in query // e.g.: john@doe.com@ if (at == (len - 1)) { query = query.substring(0, len - 1); } else { // The whois server is specified after "@" server = query.substring(at + 1, len); // The whois query is specified before "@" query = query.substring(0, at); } } try { // Establish connection to whois server & port Socket connection = new Socket(server, port); PrintStream out = new PrintStream(connection.getOutputStream()); BufferedReader in = new BufferedReader( new InputStreamReader( connection.getInputStream())); String line = ""; // Send the whois query out.println(query); // Display the whois server's address & port System.out.println("[" + server + ":" + port + "]"); // Read/display the query's result while ((line = in.readLine()) != null) { System.out.println(line); } } catch (java.net.UnknownHostException e) { // Unknown whois server System.err.println("Whois: unknown host: " + server); return; } catch (IOException e) { // Could not connect to whois server System.err.println("Whois: " + e); return; } } }