$connection_timeout = 5;
$default_extension = "";
$header_title = "WHOIS Lookup";
$header_title_url = $_SERVER["PHP_SELF"];
$internal_style_sheet = 1;
$external_style_sheet = 0;
$external_style_sheet_location = "/style.css";
$body_font_family = "verdana,arial,sans-serif";
$body_font_size = "80%";
$body_background = "#d4d4d4";
$body_color = "#000000";
$body_padding = "0";
$body_border = "0";
$body_margin = "20px";
$hr_background = "#d4d4d4";
$hr_color = "#d4d4d4";
$link_text_decoration = "underline";
$link_color = "#0000ff";
$link_background = "#ffffff";
$link_hover_text_decoration = "underline";
$link_hover_color = "#0000ff";
$link_hover_background = "#ffffff";
$link_visited_text_decoration = "underline";
$link_visited_color = "#0000ff";
$link_visited_background = "#ffffff";
$link_active_text_decoration = "underline";
$link_active_color = "#0000ff";
$link_active_background = "#ffffff";
$container_background = "#ffffff";
$title_link_font_size = "25px";
$title_link_color = "#000000";
$title_link_text_decoration = "none";
$title_link_background = "#ffffff";
$error_messages_color = "#ff0000";
$form_background = "#f2f2f2";
$form_border = "#d4d4d4";
$response_display_background = "#f2f2f2";
$domain_available_message_color = "#009900";
$supported_extensions = array(
".com.mx" => array("whois_server" => "whois.mx"),
".com" => array("whois_server" => "whois.verisign-grs.com"),
".net" => array("whois_server" => "whois.verisign-grs.com"),
".org" => array("whois_server" => "whois.publicinterestregistry.net"),
);
$extensions_array = array_keys($supported_extensions);
if ($_SERVER['REQUEST_METHOD'] == "POST") {
foreach ($_POST as $key => $value) {
$_POST[$key] = strtolower(trim($value));
}
$errors = array();
if (!isset($_POST['domain']) || empty($_POST['domain']) || !isset($_POST['extension']) || empty($_POST['extension'])) {
$errors[] = "Por favor ingrese un nombre de dominio.";
}
if (isset($_POST['domain']) && !empty($_POST['domain'])) {
// Remove spaces.
$_POST['domain'] = str_replace(" ", "", $_POST['domain']);
// Check length of domain.
if (strlen($_POST['domain']) > 63) {
$errors[] = "La longitud maxima del dominio es de 63 caracteres";
}
// Check domain for acceptable characters.
if (!preg_match('/^[0-9a-zA-Z-]+$/i', $_POST['domain'])) {
$errors[] = "El dominio solo puede contener números, letras o guiones. (evitar poner caracteres especiales).";
}
// Check domain doesn't begin or end with a hyphen.
if (substr(stripslashes($_POST['domain']), 0, 1) == "-" || substr(stripslashes($_POST['domain']), -1) == "-") {
$errors[] = "Domain may not begin or end with a hyphen.";
}
}
// Check extension is acceptable. Extension should be lower case at this point for testing in the case-sensitive in_array().
if (!in_array($_POST['extension'], $extensions_array)) {
$errors[] = "La extensión de dominio no es compatible.";
}
if (!count($errors)) {
$domain = $_POST['domain'];
$extension = $_POST['extension'];
$whois_servers = array(
"whois.publicinterestregistry.net" => array("port" => "43","query_begin" => "","query_end" => "\r\n","redirect" => "0","redirect_string" => "","no_match_string" => "NOT FOUND","encoding" => "iso-8859-1"),
"whois.verisign-grs.com" => array("port" => "43","query_begin" => "domain ","query_end" => "\r\n","redirect" => "1","redirect_string" => "Registrar WHOIS Server:","no_match_string" => "No match for domain","encoding" => "iso-8859-1"),
"whois.mx" => array("port" => "43","query_begin" => "domain ","query_end" => "\r\n","redirect" => "1","redirect_string" => "Registrar WHOIS Server:","no_match_string" => "No match for domain","encoding" => "utf-8")
// PRO version of this script has more detailed configuration
// See a demo of the pro version here: http://whoislookupscript.com/demo_pro_script.php
);
$whois_server = $supported_extensions[$extension]['whois_server'];
$port = $whois_servers[$whois_server]['port'];
$query_begin = $whois_servers[$whois_server]['query_begin'];
$query_end = $whois_servers[$whois_server]['query_end'];
$whois_redirect_check = $whois_servers[$whois_server]['redirect'];
$whois_redirect_string = $whois_servers[$whois_server]['redirect_string'];
$no_match_string = $whois_servers[$whois_server]['no_match_string'];
$encoding = $whois_servers[$whois_server]['encoding'];
$whois_redirect_server = "";
$response = "";
$line = "";
$fp = fsockopen($whois_server, $port, $errno, $errstr, $connection_timeout);
if (!$fp) {
print "fsockopen() error when trying to connect to {$whois_server}<br><br>Error number: ".$errno."<br>"."Error message: ".$errstr;
exit;
}
fputs($fp, $query_begin.$domain.$extension.$query_end);
while (!feof($fp)) {
$line = fgets($fp);
$response .= $line;
// Check for whois redirect server.
if ($whois_redirect_check && stristr($line, $whois_redirect_string)) {
$whois_redirect_server = trim(str_replace($whois_redirect_string, "", $line));
break;
}
}
fclose($fp);
// Query redirect server if set.
if ($whois_redirect_server) {
// Query the redirect server. Might be different values for port etc, so give the option to change them from those set previously. Using defaults below.
$whois_server = $whois_redirect_server;
$port = "43";
$connection_timeout = 5;
$query_begin = "";
$query_end = "\r\n";
$response = "";
$fp = fsockopen($whois_server, $port, $errno, $errstr, $connection_timeout);
if (!$fp) {
print "fsockopen() error when trying to connect to {$whois_server}<br><br>Error number: ".$errno."<br>"."Error message: ".$errstr;
exit;
}
fputs($fp, $query_begin.$domain.$extension.$query_end);
while (!feof($fp)) {
$response .= fgets($fp);
}
fclose($fp);
}
// Check result for no-match phrase.
$domain_registered_message = "";
if (stristr($response, $no_match_string)) {
$domain_registered_message = "<span class=\"noregistrado\"><b>En hora Buena " . htmlentities($domain . $extension) . " esta disponible registralo antes que te lo ganen</b></span>";
} else {
$domain_registered_message = "<span class=\"registrado\"><b>Ups!! " . htmlentities($domain . $extension) . " ya esta registrado intenta con otro nombre</b></span>";
}
}
}
// Set a default encoding for the form page. If a WHOIS server uses a particular encoding it will be set above if the form is posted without errors.
if (!isset($encoding)) {
$encoding = "UTF-8";
}
?>
<div class="whois">
<h2>Piensa el Nombre de tu Sitio Web y Checa si esta Libre</h2>
<div class="whoiscont">
<?php
// Print any errors.
foreach ($errors as $value) {
print "<span class=\"error_messages\"><p>".htmlentities($value)."</p></span><br/>"; }
}
?>
<form action="
<?php print htmlspecialchars($_SERVER["PHP_SELF"]) ?>" method="post" autocomplete="off">
<div id="lookup_form">
<b style="font-size: 30px;color:#FFF;font-family: calibri;margin: 0px 5px auto auto;padding: 0px;display: block;vertical-align: middle;float: left;">www. </b><input type="text" name="domain">
<select name="extension">
<?php
foreach ($extensions_array as $value) {
$selected =
(isset($_POST['extension']) && $_POST['extension'] == $value) || (!isset($_POST['extension']) && $value == $default_extension) ? 'selected'
: '';
print "<option value=\"$value\" ${selected}>" . htmlentities($value) . "</option>\n"; }
?>
</select>
<button>Verificar</button>
</div>
</form>
</div>
<?php
if (isset($domain_registered_message) && !empty($domain_registered_message)) { print "<br/>${domain_registered_message}";
}
}
if ($_SERVER['REQUEST_METHOD'] == "GET") {
?>
<?php
}
?>
</div>
</body>
</html>