DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Code snippets (http://www.devprotalk.com/forumdisplay.php?f=46)
-   -   PHP Whois Class (http://www.devprotalk.com/showthread.php?t=10195)

webarto 26. 06. 2011. 20:23

PHP Whois Class
 
Kao što ime kaže, provjereno radi com,net,org,info... Može se napraviti i parser da kupi datume isteka domene i status itd...

PHP kôd:

class Whois{
    
    public function 
check($url){
        
$data $this->curl("http://www.50webs.com/api-domains/json-whois-check.php?domain=$url");
        
$data $this->match('\("(.*?)"\);'$data);
        
$data str_replace(array("\\n"), array("\n"), $data);
        
$data stripslashes($data);
        return 
$data;
    }

    private function 
match($regex$string){
        
preg_match("#$regex#is"$string$matches);
        return 
$matches[1];
    }

    private function 
curl($url){
        
$curl curl_init();
        
curl_setopt($curlCURLOPT_URL$url);
        
curl_setopt($curlCURLOPT_ENCODING"gzip");
        
curl_setopt($curlCURLOPT_RETURNTRANSFER1);
        
$data curl_exec($curl);
        
curl_close($curl);
        return 
$data;
    }
    


PHP kôd:

$whois = new Whois;
echo 
$whois->check("devprotalk.com"); 

Citat:

...
Registrant:
UTP CODE doo
Nehruova 51a
lokal 135
Belgrade, Serbia 11000
Serbia

Registered through: WebsiteSpot.com
Domain Name: DEVPROTALK.COM
Created on: 17-May-05
Expires on: 17-May-12
Last Updated on: 12-May-11

Administrative Contact:
Pilipovic, Goran bluesman@utp-code.com
UTP CODE doo
Nehruova 51a
lokal 135
Belgrade, Serbia 11000
Serbia
113189195 Fax -- 113189195

Technical Contact:
Pilipovic, Goran bluesman@utp-code.com
UTP CODE doo
Nehruova 51a
lokal 135
Belgrade, Serbia 11000
Serbia
113189195 Fax -- 113189195

Domain servers in listed order:
NS1.UTPC2.COM
NS2.UTPC2.COM
...

sinisabobic 26. 06. 2011. 20:37

posto su serveri na kojima se tera PHP u najvecem procentu Linux ili nesto *nix-oliko, zar nije lakse dobiti kompletan whois preko shell komande whois (bar za podrzane .com .net .org .info ...)
1. taj server koji vraca json takodje mora da uradi whois pa da to vrati
2. na ovaj nacin zavisis od tog sajta 50webs.com koji ako promeni putanju ili ukine tu skriptu tvoj kod nece raditi

webarto 26. 06. 2011. 21:09

U suštini jeste... njihovi serveri brzo to rade prema tome ja se o njih "grebem", ostavim im godišnje 1000$ valjda imam pravo :D... evo i za Internic mada je presporo i nekada i više od 10s...

PHP kôd:

class Internic{

    private 
$exts = array("aero","arpa","asia","biz","cat","com","coop","edu","info","int","jobs","mobi","museum","name","net","org","pro","travel");

    public function 
check($url){
        
        
$ext explode("."$url);
        
$ext end($ext);
        
        if(
in_array($ext$this->exts)){
            
$data $this->curl("http://reports.internic.net/cgi/whois?whois_nic=$url&type=domain");
            
$return $this->match("<pre>(.*?)</pre>"$data);
        }else{
            
$return false;
        }
    
        return 
$return;
    
    }

    private function 
match($regex$string){
        
preg_match("#$regex#is"$string$matches);
        return 
$matches[1];
    }

    private function 
curl($url){
        
$curl curl_init();
        
curl_setopt($curlCURLOPT_URL$url);
        
curl_setopt($curlCURLOPT_ENCODING"gzip");
        
curl_setopt($curlCURLOPT_RETURNTRANSFER1);
        
$data curl_exec($curl);
        
curl_close($curl);
        return 
$data;
    }
   
}

$whois = new Internic;
echo 
$whois->check("devprotalk.com"); 


mangia 26. 06. 2011. 21:30

Citat:

Originalno napisao sinisabobic (Napišite 100284)
.... zar nije lakse dobiti kompletan whois preko shell komande whois (bar za podrzane .com .net .org .info ...)

Na većini servera je izvršavanje komandi zabranjeno (mislim na shared hosting naloge).

dinke 26. 06. 2011. 22:28

Ja imam sjajnu whois klasu za sve moguce i nemoguce extenzije, ali nazalost ne mogu da je sharujem ovde posto je pravljena za potrebe mog klijenta :)

Elem, par hintova:

- Koristi classic whois interface, dakle socketi i konekcija na port 43 a ne web based.

dragan-dinics-macbook-pro-2:~ dinke$ telnet whois.crsnic.net 43
Trying 199.7.55.74...
Connected to whois.crsnic.net.
Escape character is '^]'.
dinke.net

Whois Server Version 2.0

Domain names in the .com and .net domains can now be registered
with many different competing registrars. Go to http://www.internic.net
for detailed information.

Domain Name: DINKE.NET
Registrar: GODADDY.COM, INC.
Whois Server: whois.godaddy.com
Referral URL: http://registrar.godaddy.com
Name Server: NS1.WEBFACTION.COM
Name Server: NS2.WEBFACTION.COM
Name Server: NS3.WEBFACTION.COM
Name Server: NS4.WEBFACTION.COM
Status: clientDeleteProhibited
Status: clientRenewProhibited
Status: clientTransferProhibited
Status: clientUpdateProhibited
Updated Date: 21-nov-2010
Creation Date: 17-jan-2003
Expiration Date: 17-jan-2013


i naravno parsujes output :)

Adrese whois servera mozes naci na iana.org sajtu, npr za .com/.net je whois.crsnic.net. Kod requestova bukvalno saljes domen<cr> (kao u gornjem primeru).

webarto 26. 06. 2011. 22:36

Ti i sinisabobic ste sigurno u Domains departmentu :D

Znam na šta misliš, tako nekako bi i trebalo :)

dinke 26. 06. 2011. 22:44

Citat:

Originalno napisao webarto (Napišite 100289)
Ti i sinisabobic ste sigurno u Domains departmentu :D

Sinisa nije, ja jesam i to vise od 5 godina :)


Vreme je GMT +2. Trenutno vreme je 12:46.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.