据说 XYZ 域名能免费注册。赶紧写了个批量扫描未注册域名的程序
<?php
print_r("
+------------------------------------+
Domian Scan
By :MEIAM
blog:http://www.592.la
Example: php.exe $argv[0] xyz 3 0
+------------------------------------+
rn");
class SearchDomain {
var $domain = "";
function SetDomain($udomain) {
$this->domain = $udomain;
}
//
// 获取whois并分析域名状态
// ok 未被注册
// 非空值 过期时间
// 空值 未知
//
function GetInfo() {
/*
$dinfo = trim($this->GetWhois());
if($dinfo=="") return "";
if(eregi("no match",$dinfo)) return "ok";
//return $rs;
*/
$wl = "";
$w_server = $this->GetServer();
if ($w_server == "") return "";
$fp = fsockopen($w_server, 43, $errno, $errstr, 30);
if (!$fp) {
echo $errstr;
return "";
}
$out = $this->domain . "rn";
$out.= "Connection: Closernrn";
fputs($fp, $out);
while (!feof($fp)) {
$wl = fgets($fp, 255);
if (eregi("no match", $wl)) {
fclose($fp);
return "ok";
}
if (eregi("DOMAIN NOT FOUND", $wl)) {
fclose($fp);
return "ok";
}
if (eregi("Expiration Date", $wl)) {
$lines = split(":", $wl);
$t = trim($lines[1]);
$ts = split(" ", $t);
$t = $ts[0];
if (ereg("[^0-9-]", $t)) {
$ts = split("-", $t);
$t = $ts[2] . "-" . $this->MonthToNum($ts[1]) . "-" . $ts[0];
}
fclose($fp);
return $t;
}
}
fclose($fp);
return "";
}
//
//获得域名的整个whois信息
//
function GetWhois() {
$wh = "";
$w_server = $this->GetServer();
if ($w_server == "") return "";
$fp = fsockopen($w_server, 43, $errno, $errstr, 30);
if (!$fp) {
echo $errstr;
return "";
}
$out = $this->domain . "rn";
$out.= "Connection: Closernrn";
fputs($fp, $out);
while (!feof($fp)) {
$wh.= nl2br(fgets($fp, 255));
}
fclose($fp);
return $wh;
}
//
//输出当前域名的状态信息
//
function PrintSta() {
$rs = $this->GetInfo();
if ($rs == "ok") echo $this->domain . " 未注册!
rn";
else if ($rs == "") echo "无法查询 " . $this->domain . " 状态!
rn";
else echo $this->domain . " 已注册,到期时间:$rs
rn";
}
//
//获得 whois 查询服务器
//
function GetServer() {
$udomain = substr($this->domain, -3);
switch ($udomain) {
case "com":
$w_server = "whois.internic.net";
break;
case "net":
$w_server = "whois.internic.net";
break;
case "org":
$w_server = "whois.pir.org";
break;
case "nfo":
$w_server = "whois.afilias.info";
break;
case "biz":
$w_server = "whois.biz";
break;
case ".cc":
$w_server = "whois.nic.cc";
break;
case "edu":
$w_server = "whois.educause.net";
break;
case "gov":
$w_server = "whois.nic.gov";
break;
case ".cn":
$w_server = "whois.cnnic.net.cn";
break;
case "xyz":
$w_server = "whois.nic.xyz";
break;
default:
$w_server = "";
}
return $w_server;
}
//
//英语的月份转为数字
//
function MonthToNum($m) {
$m = strtolower($m);
for ($i = 1; $i &lt;= 12; $i++) { $tt = mktime(0, 0, 0, $i + 1, 0, 2005); if ($m == strtolower(strftime("%b", $tt))) { if ($i &gt; 9) return $i - 1;
else return "0" . $i - 1;
}
}
}
}
$End = isset($argv[1]) ? $argv[1] : "xyz";
$Len = isset($argv[2]) ? $argv[2] : 3;
$Interface = isset($argv[3]) ? $argv[3] : 1;
$File = "$End.txt";
echo "You scan the domain name suffix: $End Length : $Lenrn";
while (true) {
if ($Interface == 0) {
$Domian = strDomian($Len) . "." . $End;
echo "rScan : $Domian ";
$sd = new SearchDomain();
$sd->SetDomain($Domian);
$rs = $sd->GetInfo();
if ($rs == "ok") {
echo " Unregistered , === &gt; $File rn";
file_put_contents($File, $Domian . "rn", FILE_APPEND);
}
sleep(4);
}
if ($Interface == 1) {
$Domian = strDomian($Len) . "." . $End;
$Api = "http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=" . $Domian;
echo "rScan : $Domian ";
$Url = file_get_contents($Api);
preg_match("/(.*)&lt;/returncode&gt;/", $Url, $code);
preg_match("/(.*)&lt;/original&gt;/", $Url, $arr);
//print_r($arr);
if (@$code['1'] == "200") {
if (@$arr['1'] == "210 : Domain name is available") {
echo " Unregistered , === &gt; $File rn";
file_put_contents($File, $Domian . "rn", FILE_APPEND);
}
} else {
print_r("rn");
print_r($code);
print_r("rn");
print_r($arr);
}
sleep(4);
}
}
function strDomian($length = 3) {
$chars = '0123456789';
//$chars = 'abcdefghijklmnopqrstuvwxyz0123456789_';
$password = "";
for ($i = 0; $i &lt; $length; $i++) {
$password.= $chars[mt_rand(0, strlen($chars) - 1) ];
}
return $password;
}
?>
过来溜达了