Poltargaista
Active Member
Привет колеги!
Изпитвам някои затруднения с "подкарването" и донаписването на код, който да проверява WhoIs информацията на даден домейн и после да извежда само определени данни от нея.
Единия код, който намерих:
Но нямам class.php. А и до колкото виждам то извежда цялата информация от WhoIs-а, а не само конкретни неща (примерно: Registar & Expiration Date).
Другия код е този:
Но и за тук нямам достъп до dnservers.php. А и като го гледам е доста кофти написан и дори не успях да го подкарам.
Разполагам и със списък (не знам до колко е актуален обаче) на WhoIs сървъри за различни разширения, както и за IP-та:
Ако някой има желание и възможност да помогне да го подкараме - да пише. За почерпка ще се разберем допълнително на ЛС. :wink:
Предполагам, че в по-завършен вид ще бъде полезен на много хора, които търгуват с домейни, а и просто за следене на собствени такива.
[SUP]
Изпитвам някои затруднения с "подкарването" и донаписването на код, който да проверява WhoIs информацията на даден домейн и после да извежда само определени данни от нея.
Единия код, който намерих:
PHP:
<?php
function getwhois($domain, $tld) {
require_once("whois.class.php");
$whois = new Whois();
if( !$whois->ValidDomain($domain.'.'.$tld) ) {
return 'Sorry, the domain is not valid or not supported.'; }
if( $whois->Lookup($domain.'.'.$tld) ) {
return $whois->GetData(1); }
else { return 'Sorry, an error occurred.'; } }
$domain = trim($_REQUEST['domain']);
$dot = strpos($domain, '.');
$sld = substr($domain, 0, $dot);
$tld = substr($domain, $dot+1);
$whois = getwhois($sld, $tld);
echo "";
echo $whois;
echo "";
?>
Другия код е този:
PHP:
<?php
set_time_limit(0);
ob_start();
include 'inc/dnservers.php';
function save_file($status)
{
global $filename, $domain, $extension;
$domain = trim($domain);
$file_handle = fopen($filename . "_$status.txt", 'a+') or trigger_error('Cannot open or create file (chmod?)', E_USER_WARNING);
if($status == 'invalid' && $extension == 'org') { $status .= ' (.org WHOIS prevents request)'; }
if(!fwrite($file_handle, $domain . " is $status\n"))
{
trigger_error('Results for ' . $domain . ' could not be written.', E_USER_WARNING);
}
fclose($file_handle);
}
function return_status($domain, $status)
{
global $extension, $filename;
$file = $filename;
$domain = trim($domain);
if(isset($_POST['save']))
{
save_file( $status );
}
else
{
$color = ($status == 'available') ? 'green' : 'red';
if($status == 'invalid' && $extension == 'org') { $status .= ' (.org WHOIS prevents request)'; }
echo "<div style=\"color: $color\">$domain is $status!</div>";
}
}
if(isset($_POST['submit']))
{
$filename = 'saves/' . mt_rand(5, 9999999999);
if(strlen($_POST['domains']) > 0)
{
$domains = explode("\n", $_POST['domains']);
echo '<h1>Checking ' . count($domains) . ' domains</h1><br />';
echo (isset($_POST['save'])) ? 'Preparing results, please wait...<br /><br />' : null;
foreach($domains as $domain)
{
unset($buffer); // clean buffer - prevents problems
// (replaced str_replace)
preg_match('@^(http://www\.|http://|www\.)?([^/]+)@i', $domain, $matches);
$domain = $matches[2];
$tld = explode('.', $domain, 2);
$extension = strtolower(trim($tld[1]));
if(strlen($domain) > 0 && array_key_exists('.' . $extension, $ext))
{
$server = $ext['.' .$extension][0];
$sock = fsockopen($server, 43) or die('Error Connecting To Server:' . $server);
fputs($sock, "$domain\r\n");
while( !feof($sock) )
{
$buffer .= fgets($sock,128);
}
fclose($sock);
if($extension == 'org') echo nl2br($buffer);
if(eregi($ext['.' . $extension][1], $buffer)) { return_status($domain, 'available'); }
else { return_status($domain, 'taken'); }
}
else
{
if(strlen($domain) > 0) { return_status($domain, 'invalid'); }
}
ob_flush(); // output before checking next domain
flush();
sleep(0.1);
}
if(isset($_POST['save']) && count($domains) > 0)
{
echo 'Check completed, your results can be found below:';
if(file_exists($filename . '_available.txt'))
{
echo '<br /><a href="' . $filename . '_available.txt">Available domains</a>';
}
if(file_exists($filename . '_taken.txt'))
{
echo '<br /><a href="' . $filename . '_taken.txt">Taken domains</a>';
}
else
{
echo '<br />0 taken domains found';
}
if(file_exists($filename . '_invalid.txt'))
{
echo '<br /><a href="' . $filename . '_invalid.txt">Invalid domains (could not be checked)</a>';
}
}
}
else
{
echo 'You need to enter one or more domains!';
}
}
else
{
?>
<div style="text-align: center">
<form action="index.php" method="post">
<textarea name="domains" cols="100" rows="20"></textarea>
<br /><input type="checkbox" name="save" value="save" /> Save results as text file?<br />
<br /><input type="submit" name="submit" value="Check Availability" style="font-size: 30pt;" />
</form>
</div>
<?php
}
?>
Но и за тук нямам достъп до dnservers.php. А и като го гледам е доста кофти написан и дори не успях да го подкарам.
Разполагам и със списък (не знам до колко е актуален обаче) на WhoIs сървъри за различни разширения, както и за IP-та:
WhoIs Servers
asia|whois.nic.asia
biz|whois.biz
com|whois.verisign-grs.com
coop|whois.nic.coop
info|whois.afilias.net
jobs|jobswhois.verisign-grs.com
mobi|whois.dotmobiregistry.net
name|whois.nic.name
net|whois.verisign-grs.com
org|whois.pir.org
pro|whois.registrypro.pro
tel|whois.nic.tel
travel|whois.nic.travel
gov|whois.dotgov.gov
edu|whois.educause.edu
int|whois.iana.org
museum|whois.museum
ac|whois.nic.ac
ae|whois.nic.ae
ag|whois.nic.ag
am|whois.amnic.net
at|whois.nic.at
au|whois.aunic.net
be|whois.dns.be
bg|whois.register.bg
bj|whois.nic.bj
br|whois.registro.br
ca|whois.cira.ca
ch|whois.nic.ch
ci|whois.nic.ci
cl|whois.nic.cl
cn|whois.cnnic.net.cn
cx|whois.nic.cx
cz|whois.nic.cz
de|whois.denic.de
dk|whois.dk-hostmaster.dk
ee|whois.eenet.ee
fi|whois.ficora.fi
fr|whois.nic.fr
gd|whois.adamsnames.com
gg|whois.channelisles.net
gi|whois2.afilias-grs.net
gs|whois.nic.gs
gw|whois.nic.gw
gy|whois.registry.gy
hk|whois.hkirc.hk
hn|whois2.afilias-grs.net
ie|whois.domainregistry.ie
il|whois.isoc.org.il
in|whois.inregistry.net
io|whois.nic.io
ir|whois.nic.ir
is|whois.isnic.is
it|whois.nic.it
je|whois.channelisles.net
jp|whois.jprs.jp
ke|whois.kenic.or.ke
kg|domain.kg
ki|whois.nic.ki
kr|whois.nic.or.kr
kz|whois.nic.kz
la|whois.nic.la
li|whois.nic.li
lt|whois.domreg.lt
lu|whois.dns.lu
lv|whois.nic.lv
ly|whois.nic.ly
ma|whois.iam.net.ma
mg|whois.nic.mg
mn|whois.nic.mn
ms|whois.adamsnames.tc
mx|whois.nic.mx
my|whois.mynic.net.my
na|whois.na-nic.com.na
nl|whois.domain-registry.nl
no|whois.norid.no
nu|whois.nic.nu
nz|whois.srs.net.nz
pl|whois.dns.pl
pm|whois.nic.pm
pr|whois.uprr.pr
re|whois.nic.re
ro|whois.rotld.ro
ru|whois.ripn.net
sa|whois.nic.net.sa
sb|whois.nic.net.sb
sc|whois2.afilias-grs.net
se|whois.iis.se
sg|whois.nic.net.sg
sh|whois.nic.sh
si|whois.arnes.si
st|whois.nic.st
tc|whois.adamsnames.tc
tf|whois.nic.tf
tk|whois.dot.tk
tl|whois.nic.tl
tm|whois.nic.tm
tr|whois.nic.tr
tw|whois.twnic.net.tw
ua|whois.net.ua
ug|whois.co.ug
uk|whois.nic.uk
us|whois.nic.us
uz|whois.cctld.uz
vc|whois2.afilias-grs.net
ve|whois.nic.ve
vg|whois.adamsnames.tc
wf|whois.nic.wf
ws|whois.website.ws
yt|whois.nic.yt
IP Servers
arin|whois.arin.net
ripe|whois.ripe.net
apnic|whois.apnic.net
lacnic|whois.lacnic.net
afrinic|whois.afrinic.net
Ако някой има желание и възможност да помогне да го подкараме - да пише. За почерпка ще се разберем допълнително на ЛС. :wink:
Предполагам, че в по-завършен вид ще бъде полезен на много хора, които търгуват с домейни, а и просто за следене на собствени такива.
[SUP]
+Ангел Порязов - Профил в Google+
[/SUP]
Последно редактирано: