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