152 lines
4.1 KiB
Text
152 lines
4.1 KiB
Text
<?php
|
|
|
|
/*
|
|
Whois2.php PHP classes to conduct whois queries
|
|
|
|
Copyright (C)1999,2000 easyDNS Technologies Inc. & Mark Jeftovic
|
|
|
|
Maintained by Mark Jeftovic <markjr@easydns.com>
|
|
|
|
For the most recent version of this package:
|
|
|
|
http://www.easydns.com/~markjr/whois2/
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation; either version 2
|
|
of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
/* denic.whois 0.4 by Oliver Notka <notka@ettel-gmbh.de> */
|
|
/* Fixed error when domain doesnt exist */
|
|
|
|
/* denic.whois 0.3 by David Saez <david@ols.es> */
|
|
/* denic.whois 0.2 by Elmar K. Bins <elmi@4ever.de> */
|
|
/* based upon brnic.whois by Marcelo Sanches <msanches@sitebox.com.br> */
|
|
/* and atnic.whois by Martin Pircher <martin@pircher.net> */
|
|
|
|
/* this version does not yet deliver contact data, but handles only */
|
|
|
|
if(!defined("__DENIC_HANDLER__")) define("__DENIC_HANDLER__",1);
|
|
|
|
class denic extends Whois {
|
|
|
|
function denic($data) {
|
|
$this->result = $this->parse($data);
|
|
}
|
|
|
|
function parse ($data_str) {
|
|
$convert = array(
|
|
"domain" => "name",
|
|
"descr" => "address",
|
|
"city" => "address",
|
|
"pcode" => "address",
|
|
"country" => "address"
|
|
);
|
|
|
|
$sections = array(
|
|
"main" => "domain",
|
|
"admin-c" => "admin",
|
|
"tech-c" => "tech",
|
|
"zone-c" => "zone"
|
|
);
|
|
|
|
$r = array();
|
|
$newblock = false;
|
|
$hasdata = false;
|
|
$block = array();
|
|
$gkey = "main";
|
|
$rawdata = $data_str["rawdata"];
|
|
|
|
while (list($key,$val) = each($rawdata)) {
|
|
$val = trim($val);
|
|
if (substr($val,0,1) == '%') {
|
|
$disclaimer[] = trim(substr($val,1));
|
|
continue;
|
|
}
|
|
if ($val == "") {
|
|
$newblock = true;
|
|
continue;
|
|
}
|
|
if ($newblock && $hasdata) {
|
|
$blocks[$gkey] = $block;
|
|
$block = array();
|
|
}
|
|
if ($newblock && substr($val,0,1)=="[") {
|
|
$gkey = str_replace("]["," ",$val);
|
|
$gkey = str_replace("]","",$gkey);
|
|
$gkey = str_replace("[","",$gkey);
|
|
$newblock = false;
|
|
continue;
|
|
}
|
|
$hasdata = true;
|
|
$newblock = false;
|
|
$k = strtolower(trim(strtok($val,":")));
|
|
$v = trim(substr(strstr($val,":"),1));
|
|
|
|
if (isset($convert[$k])) {
|
|
$k = $convert[$k];
|
|
if ($k == "") continue;
|
|
}
|
|
|
|
if (isset($block[$k]) && is_array($block[$k]))
|
|
$block[$k][] = $v;
|
|
else if (!isset($block[$k]) || $block[$k]=="")
|
|
$block[$k] = $v;
|
|
else {
|
|
$x = $block[$k];
|
|
unset($block[$k]);
|
|
$block[$k][] = $x;
|
|
$block[$k][] = $v;
|
|
}
|
|
|
|
}
|
|
|
|
if ($hasdata)
|
|
$blocks[$gkey] = $block;
|
|
|
|
$r["regrinfo"]["owner"]["organization"]=$blocks["main"]["address"][0];
|
|
unset($blocks["main"]["address"][0]);
|
|
$r["regrinfo"]["owner"]["address"]=$blocks["main"]["address"];
|
|
unset($blocks["main"]["address"]);
|
|
|
|
/* Fixed by Oliver Notka if Domain not exist. */
|
|
if (!isset($blocks)) {
|
|
$this->Query["errstr"]="Domain not found";
|
|
unset($this->result["rawdata"]);
|
|
return;
|
|
}
|
|
|
|
while (list($gkey,$gval) = each($blocks))
|
|
{
|
|
$parts=explode(" ",$gkey);
|
|
while (list($pkey,$pval) = each($parts))
|
|
{
|
|
if (isset($gval["address"][0]))
|
|
{
|
|
$gval["organization"]=$gval["address"][0];
|
|
unset($gval["address"][0]);
|
|
}
|
|
|
|
$r["regrinfo"][$sections[$pval]]=$gval;
|
|
}
|
|
}
|
|
|
|
$r["rawdata"] = $data_str["rawdata"];
|
|
|
|
$r["regyinfo"] = array( "registrar" => "DENIC eG",
|
|
"referrer" => "http://www.denic.de/");
|
|
|
|
if (isset($disclaimer)) $r["regrinfo"]["disclaimer"]=$disclaimer;
|
|
return($r);
|
|
}
|
|
}
|