Example usage for org.apache.commons.net.whois WhoisClient setDefaultTimeout

List of usage examples for org.apache.commons.net.whois WhoisClient setDefaultTimeout

Introduction

In this page you can find the example usage for org.apache.commons.net.whois WhoisClient setDefaultTimeout.

Prototype

public void setDefaultTimeout(int timeout) 

Source Link

Document

Set the default timeout in milliseconds to use when opening a socket.

Usage

From source file:examples.unix.fwhois.java

public static void main(String[] args) {
    int index;// www .j  a  va2  s .c o m
    String handle, host;
    InetAddress address = null;
    WhoisClient whois;

    if (args.length != 1) {
        System.err.println("usage: fwhois handle[@<server>]");
        System.exit(1);
    }

    index = args[0].lastIndexOf("@");

    whois = new WhoisClient();
    // We want to timeout if a response takes longer than 60 seconds
    whois.setDefaultTimeout(60000);

    if (index == -1) {
        handle = args[0];
        host = WhoisClient.DEFAULT_HOST;
    } else {
        handle = args[0].substring(0, index);
        host = args[0].substring(index + 1);
    }

    try {
        address = InetAddress.getByName(host);
        System.out.println("[" + address.getHostName() + "]");
    } catch (UnknownHostException e) {
        System.err.println("Error unknown host: " + e.getMessage());
        System.exit(1);
    }

    try {
        whois.connect(address);
        System.out.print(whois.query(handle));
        whois.disconnect();
    } catch (IOException e) {
        System.err.println("Error I/O exception: " + e.getMessage());
        System.exit(1);
    }
}

From source file:examples.fwhois.java

public static final void main(String[] args) {
    int index;/*from w w w .  j  a  v a  2 s . com*/
    String handle, host;
    InetAddress address = null;
    WhoisClient whois;

    if (args.length != 1) {
        System.err.println("usage: fwhois handle[@<server>]");
        System.exit(1);
    }

    index = args[0].lastIndexOf("@");

    whois = new WhoisClient();
    // We want to timeout if a response takes longer than 60 seconds
    whois.setDefaultTimeout(60000);

    if (index == -1) {
        handle = args[0];
        host = WhoisClient.DEFAULT_HOST;
    } else {
        handle = args[0].substring(0, index);
        host = args[0].substring(index + 1);
    }

    try {
        address = InetAddress.getByName(host);
    } catch (UnknownHostException e) {
        System.err.println("Error unknown host: " + e.getMessage());
        System.exit(1);
    }

    System.out.println("[" + address.getHostName() + "]");

    try {
        whois.connect(address);
        System.out.print(whois.query(handle));
        whois.disconnect();
    } catch (IOException e) {
        System.err.println("Error I/O exception: " + e.getMessage());
        System.exit(1);
    }
}

From source file:net.spfbl.core.Server.java

/**
 * Consulta de identificao no WHOIS./* w ww.  j a  va  2 s. c  om*/
 * Controla a taxa de 30 consultas no intervalo de 24 horas.
 * @param query a consulta a ser realizada.
 * @param server o servidor que contm a informao.
 * @return o resultado do WHOIS para a consulta.
 * @throws ProcessException se houver falha no processamento da informao.
 */
public static String whoisID(String query, String server) throws ProcessException {
    long time = System.currentTimeMillis();
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    try {
        if (WHOIS_CONNECTION_SEMAPHORE.tryAcquire()) {
            try {
                acquireWhoisIDQuery();
                WhoisClient whoisClient = new WhoisClient();
                try {
                    whoisClient.setDefaultTimeout(3000);
                    whoisClient.connect(server);
                    InputStream inputStream = whoisClient.getInputStream(query);
                    int code;
                    while ((code = inputStream.read()) != -1) {
                        outputStream.write(code);
                    }
                } finally {
                    whoisClient.disconnect();
                }
            } finally {
                WHOIS_CONNECTION_SEMAPHORE.release();
            }
        } else {
            throw new ProcessException("ERROR: TOO MANY CONNECTIONS");
        }
    } catch (ProcessException ex) {
        throw ex;
    } catch (Exception ex) {
        throw new ProcessException("ERROR: WHOIS CONNECTION FAIL", ex);
    }
    try {
        String result = outputStream.toString("ISO-8859-1");
        logWhois(time, server, query, result);
        return result;
    } catch (UnsupportedEncodingException ex) {
        throw new ProcessException("ERROR: ENCODING", ex);
    }
}

From source file:net.spfbl.core.Server.java

/**
 * Consulta comum no WHOIS.//  w w  w  .  j  a va 2  s .c om
 * Controla a taxa de 30 consultas no intervalo de 5 minutos.
 * @param query a consulta a ser realizada.
 * @param server o servidor que contm a informao.
 * @return o resultado do WHOIS para a consulta.
 * @throws ProcessException se houver falha no processamento da informao.
 */
public static String whois(String query, String server) throws ProcessException {
    long time = System.currentTimeMillis();
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    try {
        if (WHOIS_CONNECTION_SEMAPHORE.tryAcquire()) {
            try {
                acquireWhoisQuery();
                WhoisClient whoisClient = new WhoisClient();
                try {
                    whoisClient.setDefaultTimeout(3000);
                    whoisClient.connect(server);
                    InputStream inputStream = whoisClient.getInputStream(query);
                    try {
                        int code;
                        while ((code = inputStream.read()) != -1) {
                            outputStream.write(code);
                        }
                    } finally {
                        inputStream.close();
                    }
                } finally {
                    whoisClient.disconnect();
                }
            } finally {
                WHOIS_CONNECTION_SEMAPHORE.release();
            }
        } else {
            throw new ProcessException("ERROR: TOO MANY CONNECTIONS");
        }
    } catch (ProcessException ex) {
        throw ex;
    } catch (Exception ex) {
        throw new ProcessException("ERROR: WHOIS CONNECTION FAIL", ex);
    }
    try {
        String result = outputStream.toString("ISO-8859-1");
        result = result.replace("\r", "");
        logWhois(time, server, query, result);
        return result;
    } catch (UnsupportedEncodingException ex) {
        throw new ProcessException("ERROR: ENCODING", ex);
    }
}

From source file:org.apache.common.net.examples.unix.fwhois.java

public static final void main(String[] args) {
    int index;/*  w  ww  .  j  a v  a2 s. c om*/
    String handle, host;
    InetAddress address = null;
    WhoisClient whois;

    if (args.length != 1) {
        System.err.println("usage: fwhois handle[@<server>]");
        System.exit(1);
    }

    index = args[0].lastIndexOf("@");

    whois = new WhoisClient();
    // We want to timeout if a response takes longer than 60 seconds
    whois.setDefaultTimeout(60000);

    if (index == -1) {
        handle = args[0];
        host = WhoisClient.DEFAULT_HOST;
    } else {
        handle = args[0].substring(0, index);
        host = args[0].substring(index + 1);
    }

    try {
        address = InetAddress.getByName(host);
        System.out.println("[" + address.getHostName() + "]");
    } catch (UnknownHostException e) {
        System.err.println("Error unknown host: " + e.getMessage());
        System.exit(1);
    }

    try {
        whois.connect(address);
        System.out.print(whois.query(handle));
        whois.disconnect();
    } catch (IOException e) {
        System.err.println("Error I/O exception: " + e.getMessage());
        System.exit(1);
    }
}

From source file:org.apache.commons.net.examples.unix.fwhois.java

public static void main(String[] args) {
    int index;/*w  ww.j  av  a 2  s . c om*/
    String handle, host;
    InetAddress address = null;
    WhoisClient whois;

    if (args.length != 1) {
        System.err.println("usage: fwhois handle[@<server>]");
        System.exit(1);
    }

    index = args[0].lastIndexOf('@');

    whois = new WhoisClient();
    // We want to timeout if a response takes longer than 60 seconds
    whois.setDefaultTimeout(60000);

    if (index == -1) {
        handle = args[0];
        host = WhoisClient.DEFAULT_HOST;
    } else {
        handle = args[0].substring(0, index);
        host = args[0].substring(index + 1);
    }

    try {
        address = InetAddress.getByName(host);
        System.out.println("[" + address.getHostName() + "]");
    } catch (UnknownHostException e) {
        System.err.println("Error unknown host: " + e.getMessage());
        System.exit(1);
    }

    try {
        whois.connect(address);
        System.out.print(whois.query(handle));
        whois.disconnect();
    } catch (IOException e) {
        System.err.println("Error I/O exception: " + e.getMessage());
        System.exit(1);
    }
}

From source file:org.archive.modules.fetcher.FetchWhois.java

protected void fetch(CrawlURI curi, String whoisServer, String whoisQuery) {
    WhoisClient client = new WhoisClient();
    Recorder recorder = curi.getRecorder();

    try {/*from w  ww.  ja va 2  s.co m*/
        client.setConnectTimeout(getSoTimeoutMs());
        client.setDefaultTimeout(getSoTimeoutMs());

        if (curi.getUURI().getPort() > 0) {
            client.connect(whoisServer, curi.getUURI().getPort());
        } else {
            client.connect(whoisServer);
        }

        client.setSoTimeout(getSoTimeoutMs()); // must be after connect()

        curi.getData().put(CoreAttributeConstants.A_WHOIS_SERVER_IP,
                client.getRemoteAddress().getHostAddress());

        recorder.inputWrap(client.getInputStream(whoisQuery));

        // look for info about whois server in the response
        // XXX run regex on the whole thing, rather than line by line?
        BufferedReader reader = new BufferedReader(new InputStreamReader(recorder.getRecordedInput(), "ASCII"));
        for (String line = reader.readLine(); line != null; line = reader.readLine()) {
            Matcher matcher = TextUtils.getMatcher(WHOIS_SERVER_REGEX, line);
            if (matcher.find()) {
                // gets rid of "domain " for whois.verisign-grs.com queries
                String key = whoisQuery.replaceFirst("(\\S+\\s+)+", "").toLowerCase();
                referralServers.put(key, matcher.group(1).toLowerCase());
                if (logger.isLoggable(Level.FINE)) {
                    logger.fine("added referral server " + matcher.group(1) + " to server list for " + key);
                }
            }
        }

        curi.setContentType("text/plain");
        curi.setFetchStatus(S_WHOIS_SUCCESS);
    } catch (IOException e) {
        if (logger.isLoggable(Level.FINE)) {
            logger.fine("failed to connect to whois server for uri " + curi + ": " + e);
        }
        curi.getNonFatalFailures().add(e);
        curi.setFetchStatus(S_CONNECT_FAILED);
    } finally {
        recorder.close();
        curi.setContentSize(recorder.getRecordedInput().getSize());
        logger.fine(curi + ": " + recorder.getRecordedInput().getSize() + " bytes read");

        if (client != null && client.isConnected())
            try {
                client.disconnect();
            } catch (IOException e) {
                logger.fine("problem closing connection to whois server for uri " + curi + ": " + e);
            }

        urlProgress.put(curi.toString(), UrlStatus.DONE.ordinal());
    }
}