Buscar dominios Whois JAVA

WHOIS JAVA

Para este caso utilizo socket para lograr la busqueda de dominios disponibles en la web a un puerto 43.

Primero se debe conocer el whois publico EJ: whois.internic.net para dominios .net .com .edu
ahora hay que abrir un socket con el puerto 43.
Ejemplo: 

Socket s = new Socket("whois.internic.net", 43);

y se lo lee mediante un outputStream y un bucle

OutputStream os = s.getOutputStream();

Ahora les pongo el método completo para hacer el whois.internic.net 

public Object[] whoisNETCOMEDU() {
        //.NET .COM .EDU
        Object[] retorno = new Object[2];
        try {
            Socket s = new Socket("whois.internic.net", 43);
            OutputStream os = s.getOutputStream();
            String domain = dominio + "\n";
            byte[] stringToByte = domain.getBytes();
            os.write(stringToByte);

            InputStream is = s.getInputStream();
            InputStreamReader reader = new InputStreamReader(is);
            BufferedReader buf = new BufferedReader(reader);

            String temp;
            String whois = "";
            boolean disponible = false;
            while ((temp = buf.readLine()) != null) {
                whois = whois + (temp) + "<br/>";
                if (temp.contains("No match for ")) {
                    disponible = true;
                }
            }
            retorno[0] = disponible;
            retorno[1] = whois;
        } catch (UnknownHostException ex) {
            Logger.getLogger(Whois.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(Whois.class.getName()).log(Level.SEVERE, null, ex);
        }
        return retorno;
    }


Y si quieren comprobar mas dominios les pongo todos los whois que estoy ocupando para comprobar disponibilidad en Ecuador, México, TV, los .xxx, Colombia... no lo he probado a la perfección si ustedes lo pueden mejorar pues publiquenlo aki


import java.io.*;
import java.net.*;
import java.util.logging.Level;
import java.util.logging.Logger;
//Autor M.C.C Henry Paz A. especialista en cómputo intelingente
public class Whois {

    private String dominio;

    public Whois(String dominio) {
        this.dominio = dominio;
    }

    public Object[] whoisNETCOMEDU() {
        //.NET .COM .EDU
        Object[] retorno = new Object[2];
        try {
            Socket s = new Socket("whois.internic.net", 43);
            OutputStream os = s.getOutputStream();
            String domain = dominio + "\n";
            byte[] stringToByte = domain.getBytes();
            os.write(stringToByte);

            InputStream is = s.getInputStream();
            InputStreamReader reader = new InputStreamReader(is);
            BufferedReader buf = new BufferedReader(reader);

            String temp;
            String whois = "";
            boolean disponible = false;
            while ((temp = buf.readLine()) != null) {
                whois = whois + (temp) + "<br/>";
                if (temp.contains("No match for ")) {
                    disponible = true;
                }
            }
            retorno[0] = disponible;
            retorno[1] = whois;
        } catch (UnknownHostException ex) {
            Logger.getLogger(Whois.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(Whois.class.getName()).log(Level.SEVERE, null, ex);
        }
        return retorno;
    }

    public Object[] whoisMX() {
        //.com.mx .mx
        Object[] retorno = new Object[2];
        try {
            Socket s = new Socket("whois.nic.mx", 43);
            OutputStream os = s.getOutputStream();
            String domain = dominio + "\n";
            byte[] stringToByte = domain.getBytes();
            os.write(stringToByte);

            InputStream is = s.getInputStream();
            InputStreamReader reader = new InputStreamReader(is);
            BufferedReader buf = new BufferedReader(reader);

            String temp;
            String whois = "";
            boolean disponible = false;
            while ((temp = buf.readLine()) != null) {
                whois = whois + (temp) + "<br/>";
                if (temp.contains("Object_Not_Found")) {
                    disponible = true;
                }
            }
            retorno[0] = disponible;
            retorno[1] = whois;
        } catch (UnknownHostException ex) {
            Logger.getLogger(Whois.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(Whois.class.getName()).log(Level.SEVERE, null, ex);
        }
        return retorno;
    }

    public Object[] whoisEC() {
        //.com.ec .ec info.ec net.ec fin.ec pro.ec gob.ec edu.ec org.ec
        Object[] retorno = new Object[2];
        try {
            Socket s = new Socket("whois.nic.ec", 43);
            OutputStream os = s.getOutputStream();
            String domain = dominio + "\n";
            byte[] stringToByte = domain.getBytes();
            os.write(stringToByte);

            InputStream is = s.getInputStream();
            InputStreamReader reader = new InputStreamReader(is);
            BufferedReader buf = new BufferedReader(reader);

            String temp;
            String whois = "";
            boolean disponible = false;
            while ((temp = buf.readLine()) != null) {
                whois = whois + (temp) + "<br/>";
                if (temp.contains("Not Registered")) {
                    disponible = true;
                }
            }
            retorno[0] = disponible;
            retorno[1] = whois;
        } catch (UnknownHostException ex) {
            Logger.getLogger(Whois.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(Whois.class.getName()).log(Level.SEVERE, null, ex);
        }
        return retorno;
    }

    public Object[] whoisTV() {
        //.tv
        Object[] retorno = new Object[2];
        try {
            Socket s = new Socket("whois.markmonitor.com", 43);
            OutputStream os = s.getOutputStream();
            String domain = dominio + "\n";
            byte[] stringToByte = domain.getBytes();
            os.write(stringToByte);

            InputStream is = s.getInputStream();
            InputStreamReader reader = new InputStreamReader(is);
            BufferedReader buf = new BufferedReader(reader);

            String temp;
            String whois = "";
            boolean disponible = false;
            if (buf.read() > 0) {
                while ((temp = buf.readLine()) != null) {
                    whois = whois + (temp) + "<br/>";
                    if (temp.contains("No match for ")) {
                        disponible = true;
                    }
                }
            } else {
                disponible = true;
            }
            retorno[0] = disponible;
            retorno[1] = whois;
        } catch (UnknownHostException ex) {
            Logger.getLogger(Whois.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(Whois.class.getName()).log(Level.SEVERE, null, ex);
        }
        return retorno;
    }

    public Object[] whoisXXX() {
        //.xxx
        Object[] retorno = new Object[2];
        try {
            Socket s = new Socket("whois.nic.xxx", 43);
            OutputStream os = s.getOutputStream();
            String domain = dominio + "\n";
            byte[] stringToByte = domain.getBytes();
            os.write(stringToByte);

            InputStream is = s.getInputStream();
            InputStreamReader reader = new InputStreamReader(is);
            BufferedReader buf = new BufferedReader(reader);

            String temp;
            String whois = "";
            boolean disponible = false;
            while ((temp = buf.readLine()) != null) {
                whois = whois + (temp) + "<br/>";
                if (temp.contains("NOT FOUND")) {
                    disponible = true;
                }
            }
            retorno[0] = disponible;
            retorno[1] = whois;
        } catch (UnknownHostException ex) {
            Logger.getLogger(Whois.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(Whois.class.getName()).log(Level.SEVERE, null, ex);
        }
        return retorno;
    }

    public Object[] whoisCO() {
        //.com.co .co
        Object[] retorno = new Object[2];
        try {
            Socket s = new Socket("whois.nic.co", 43);
            OutputStream os = s.getOutputStream();
            String domain = dominio + "\n";
            byte[] stringToByte = domain.getBytes();
            os.write(stringToByte);

            InputStream is = s.getInputStream();
            InputStreamReader reader = new InputStreamReader(is);
            BufferedReader buf = new BufferedReader(reader);

            String temp;
            String whois = "";
            boolean disponible = false;
            while ((temp = buf.readLine()) != null) {
                whois = whois + (temp) + "\n";
                if (temp.contains("Not found")) {
                    disponible = true;
                }
            }
            retorno[0] = disponible;
            retorno[1] = whois;
        } catch (UnknownHostException ex) {
            Logger.getLogger(Whois.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(Whois.class.getName()).log(Level.SEVERE, null, ex);
        }
        return retorno;
    }
}

Esos métodos los pueden llamar en el beans, y luego ponerlos en JSF y darle actualizaciones con AJAX y primeFaces (si tienen dudas sobre eso me avisan)

No hay comentarios:

Publicar un comentario