<?php
require'fun.php';
require'f_conectare.php';
conectare('whois','whois');
$domeniu=$_GET['domeniu']??'';
$titlu='Whois';
$back[1]='<a href="/extra-meniu">'.img('extra.png',1).'Extra meniu</a>';
require'f_sus.php';
function get_whois_server($domain)
{
if(empty($domain))
return false;
$arr_domain=explode('.',$domain,2);
$ext=$arr_domain[1];
$fp=fsockopen('whois.iana.org',43,$errno,$errstr,10);
if(!$fp)
return false;
else
{
fputs($fp,"$domain\r\n");
$info='';
while(!feof($fp))
{
$data=fgets($fp,128);
$info.=$data;
if(mb_strpos($data,'whois:')!==false)
$whois=trim(str_replace('whois:','',$data));
}
fclose($fp);
}
return$whois;
}
function interogare_server($server,$domeniu)
{
global$div;
$fp=@fsockopen($server,43,$errno,$errstr,10);
if(!$fp)
return false;
fputs($fp,$domeniu."\r\n");
$text='';
while(!feof($fp))
{
$text.=fgets($fp);
}
fclose($fp);
$res='';
if(mb_strpos(mb_strtolower($text),'error')===FALSE&&mb_strpos(mb_strtolower($text),'not allocated')===FALSE)
{
foreach(explode("\n",$text) AS$rand)
{
$rand=trim($rand);
if($rand!=''&&$rand{0}!='#'&&$rand{0}!='%')
$res.=$div[1].$rand.$div[0];
}
}
return$res;
}
function valideaza_IP($ip)
{
$numara=explode('.',$ip);
if(count($numara)!=4)
return false;
foreach($numara AS$numar)
{
if(!is_numeric($numar)||$numar>255)
return false;
}
return$ip;
}
function informatii_IP($ip)
{
global$div,$domenii_statice;
$servere=['whois.lacnic.net','whois.apnic.net','whois.arin.net','whois.ripe.net'];
$rezultate=[];
foreach($servere AS$server)
{
$rezultat=interogare_server($server,$ip);
if($rezultat&&!in_array($rezultat,$rezultate))
$rezultate[$server]=$rezultat;
}
$res=$div[4].'<img src="'.$domenii_statice[1].'actiune_check.png" alt="" width="16" height="16" />Succes!'.$div[5].$div[6].'Rezultate gasite: '.count($rezultate).$div[0];
foreach($rezultate AS$server=>$rezultat)
{
$res.=$div[1].'Rezultatele IP-ului '.$ip.', de la serverul '.$server.':'.$div[0].$div[1].print_r($rezultat,1).$div[0];
}
return$res;
}
function valideaza_domeniu($domeniu)
{
if(!preg_match('/^([-a-z0-9]{2,100})\.([a-z\.]{2,8})$/i',$domeniu))
return false;
return$domeniu;
}
function informatii_domeniu($domeniu)
{
global$div,$domenii_statice;
$server=get_whois_server($domeniu);
if(!$server)
return$div[4].'<img src="'.$domenii_statice[2].'actiune_delete.png" alt="" width="16" height="16" />Eroare!'.$div[5].$div[7].'Nu a fost gasit nici un server de whois pentru domeniul '.$domeniu.'!'.$div[0];
$rezultat=interogare_server($server,$domeniu);
if(!$rezultat)
return$div[4].'<img src="'.$domenii_statice[2].'actiune_delete.png" alt="" width="16" height="16" />Eroare!'.$div[5].$div[7].'Nu s-au primit rezultate de la serverul '.$server.' pentru domeniul '.$domeniu.'!'.$div[0];
else
{
while(mb_strpos($rezultat,'Whois Server:')!==FALSE)
{
preg_match('/Whois Server: (.*)/',$rezultat,$matches);
$secondary=$matches[1];
if($secondary)
{
$rezultat=interogare_server($secondary,$domeniu);
$server=$secondary;
}
}
}
return$div[4].'<img src="'.$domenii_statice[1].'actiune_check.png" alt="" width="16" height="16" />Succes!'.$div[5].$div[6].'Rezultatele domeniului '.idn_to_utf8($domeniu).', de la serverul '.$server.':'.$div[0].explode('<<<',$rezultat)[0];
}
if($domeniu)
{
$domeniu=str_ireplace(['http://','https://','www.'],'',$domeniu);
if(valideaza_IP($domeniu))
echo informatii_IP($domeniu);
elseif(valideaza_domeniu(idn_to_ascii($domeniu)))
echo informatii_domeniu(idn_to_ascii($domeniu));
else
echo$div[4].'<img src="'.$domenii_statice[2].'actiune_delete.png" alt="" width="16" height="16" />Eroare!'.$div[5].$div[7].'Nu a fost postat un domeniu sau IP corect!'.$div[0];
}
else
echo$div[4].img('servicii.gif',2).'Whois'.$div[5].$div[10].'Afla informații despre domenii înregistrate și despre adrese IP, (se acceptă și interogări de domenii cu diacritice!).'.$div[0];
$form[0]='/whois" method="get';
$form[1]=1;
$form[2]=$div[1].'Introdu un domeniu sau un IP pentru care dorești detalii:<br /><input name="domeniu" />'.$div[0];
$form[3]='domeniu';
$form[4]='Afiseaza';
require'f_form.php';
require'f_jos.php';