Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP i wyszukiwanie wolnych domen .pl
Forum PHP.pl > Forum > PHP
anas
Witam

Ostatnimi czasy pisałem maly skrypcik, ktory sprawdzal mi czy istnieje wybrana domena... niestety po jakims czasie przestal dzialac...

Generalnie algorytm polegal na odpytywaniu serwerow whois i interpretowaniu zwracanych informacji - na tej podstawie szacowalem czy dana domena jest wolna, lub zajeta.

Okazalo sie, ze problem pojawil sie po stronie NASK-u (chodzi mi tylko i wylacznie o koncowki .pl, .com, .net itd dzialaja bez zarzutow), odpytywalem serwer nazgul.nask.waw.pl, ktory obecnie nie odpowiada na zadne wywolania... jedyna metoda jaka przychodzi mi do glowy, to korzystac ze strony http://whois.dns.pl/cgi-bin/whois.pl i interpretowac wyniki jakies zwraca skrypcik... niestety metoda ta nie jest do konca efektywna... ogranicza sie do 50 odpytan na dobe, a to jednak troche malo.

Znacie moze jakies inne metody szacowania czy domena .pl jest wolna, najlepiej zeby nie bylo ograniczen do ilosci wywolan na dobe, itp.

Z gory dzieki za kazda pomoc.

Pozdrawiam, anas.
wassago
no wez engine z innej strony i na zasadzie wynikiow z tej strony dzialaj. :wink:
kris_
mozesz sprobowac uzyc komenty host i zmieniac co jakis czas servery ktore odpytujesz zeby sie za bardzo nie buntowaly.
anas
Hejka ponownie...

Po calodniowym tescie wyszlo na to ze metoda: odpytac okalnie poprzez whois na serwerze i interpertacja wyniku jest najszybsze, z tym ze odpytuje serwer whois.nask.pl...

mniej wiecej tak #whois -h whois.nask.pl szukana_domena.pl

a serwer ten ma limit na jedno ip... mam do dyspozcyji 3 serwerki w lokalu i napisalem skrypcik ktory korzysta z ich adresow ip... ale niestety to tez szybko sie konczy... moze znacie jakies inne serwery whois ktore mozna odpytywac o domeny .pl ?

Z gory dzieki

anas
PrZeMoL
http://www.nazwa.pl/
anas
Przemol: nie bardzo rozumiem jak z konsoli moge odpytac serwer nazwa.pl o domenki .pl. Rzeczywiscie serwis zajmuje sie rejestracja domen i ma takze ich wyszukiwarke, ale jak to sie ma do mojego pytania, to nie bardzo kapuje biggrin.gif questionmark.gif
adwol
Cytat
moze znacie jakies inne serwery whois ktore mozna odpytywac o domeny .pl ?

Domena pl jest obsługiwana wyłącznie przez NASK więc raczej nikt inny nie posiada skopiowanej bazy whoisa do siebie.

Dla sprawdzenia czy istnieje domena prościej jest odpytać się samego DNSa o to. Nie potrzebny Ci jest whois.
[php:1:c505aaa70d]<?php
if (checkdnsrr('nazwa.pl', 'NS')) {
// domena istnieje
} else {
// domena chyba nie istnieje
}

?>[/php:1:c505aaa70d]
anas
Hejka.

adwol: odnosnie sposobu poprzez odpytywanie serwerow dns i fun. checkdnsrr() to jest to efektywne w przypadku gdy domena .pl istnieje... wtedy czas odnalezienia domeny jest blyskawiczny i odpowiedz o jej istnieniu tez... problem pojawia sie gdy domena nie istnieje... czas na odpowiedz wydluza sie drastycznie... po kilka sekund na odpytanie o jedna domene .pl...

myslalem tutaj o szacowaniu wyniku poprzez dlugosc odpytywania... i przerywaniu go po 2 sekundach funkcja set_time_limit().. ale nie wiem jak ja zaimplementowac do wlasnego kodu...

calosc mam napisana obiektowo - funkcja ktora sprawdza istnienie domen to jedna z metod pewnej klasy... a wewnatrz niej wywolywalbym wlasnie funkcje checkdnsrr() do sprawdzenia istnienia szukanej domeny, po przekroczeniu czasu 2 sekund - przerywane byloby wykonywanie funkcji checkdnsrr() i na tej podstawie wynikiem byloby prawdopodobienstwo tego ze domena jest wolna. Teraz problem polega na tym, jak przerwac wykonywanie sie pewnej funkcji wewnatrz metody klasy questionmark.gif
adwol
Cytat
adwol: odnosnie sposobu poprzez odpytywanie serwerow dns i fun. checkdnsrr() to jest to efektywne w przypadku gdy domena .pl istnieje... wtedy czas odnalezienia domeny jest blyskawiczny i odpowiedz o jej istnieniu tez... problem pojawia sie gdy domena nie istnieje... czas na odpowiedz wydluza sie drastycznie... po kilka sekund na odpytanie o jedna domene .pl...

questionmark.gif? A niby dlaczego tak miałoby się dziać? Pytam się serwera o rekord NS, a on mi albo go zwraca albo mówi że nie ma takiego. Czas w obu przypadkach jest porównywalny i zależy wyłącznie od łącza i tego jak szybko odpowie serwer.
Na niezbyt szybkim łączu (256 kbps):
Kod
$ time php -r 'checkdnsrr("jakas-nazwa-ktorej-napewno-nie-ma-w-dnsie.pl", "NS");'



real    0m0.831s

user    0m0.340s

sys     0m0.440s

$ time php -r 'checkdnsrr("php.pl", "NS");'



real    0m0.833s

user    0m0.360s

sys     0m0.330s

Jak koniecznie chcesz się dostać od razu do bilba z ominięciem lokalnego serwera DNS to użyj klasy PEARowej Net_DNS albo pod uniksem programu dig:
[php:1:2cc6e232bb]<?php
$a = shell_exec("dig @bilbo.nask.org.pl domena.pl ns | grep ^domena.pl");
if ($a != '')
print "Domena istniejen";
?>[/php:1:2cc6e232bb]
anas
hmmm ja pracuj pod freebsd i oto wartosci jakie mi zwraca system jak robie podobny test do Twojego:

time php -r 'checkdnsrr("jakas-nazwa-ktorej-napewno-nie-ma-w-dnsie.pl", "NS");'
0.028u 0.014s 0:15.35 0.1% 2824+709k 0+0io 1pf+0w

time php -r 'checkdnsrr("php.pl", "NS");'
0.034u 0.006s 0:00.12 25.0% 2824+705k 0+0io 0pf+0w

Czy to normalne ze czas rzeczywisty dla nieistniejacej domeny wydluza mi sie do 15 s questionmark.gif od czego to zalezy questionmark.gif i ewentualnie jak to zmienic questionmark.gif Z gory thx, za kazda podpowiedz....

Pozdrowka

anas
anas
Hejka ponownie... sorrki za klopot... juz sobie poradzilem... problem lezal po stronie serwera jesli chodzi o wydluzajace sie czasy odpytywania, a dokladniej nie mialem wpisu dla lokalnego NS-a w /etc/resolv.conf

po wielu testach metoda adwola o odpytywanie NS-ow okazala sie najefektywniejsza... jeszcze raz dzieki...

pozdrawiam

anas
harek
Istnieje jakaś funckja która by sparawdzałą do kogo dana domena należy " whois " ?
adwol
Cytat
Istnieje jakaś funckja która by sparawdzałą do kogo dana domena należy " whois " ?

Tak, fsockopen. winksmiley.jpg
[php:1:fb26837cdf]<?php
$fp = fsockopen('whois.dns.pl', 43);
fputs($fp, "domena.pln");
while (!feof($fp))
print fgets($fp);
fclose($fp);
?>[/php:1:fb26837cdf]
harek
hmm troche dwne wywala mi jedno zdanie w którym coś tam pisze po angielsku i niżej jest link troche takie mało potrzben :] czy to jest te whois ?
Aha i ten skrypt wyżej do sprawdzania domen może być także stosowany do wyszukiwania domen np. org , com , net, biz, info ,itd....?A jak nie to czy istnieje jakiś inny do wyszukiwania domen tych co podałem wyżej !!questionmark.gif
I na ile procent ten skrypt wyżej do wyszukiwania domen jest pewny? smile.gif
adwol
Cytat
hmm troche dwne wywala mi jedno zdanie w którym coś tam pisze po angielsku i niżej jest link troche takie mało potrzben :] czy to jest te whois ?

Dziwne, mi wypisuje pełne dane z whoisa. Przykładowo dla php.pl:
Kod
% This is the NASK WHOIS Server.

% This server provides information only for PL domains.

% For more info please see http://www.dns.pl/english/whois.html



Domain object:

domain:     php.pl

type:       PRIVATE

registranti's handle: nsk238571

nservers:     pi229.poznan.sdi.tpnet.pl.

              athena.pgb.pl.[213.17.224.51]

created:        2000.05.24

last modified:  2003.09.03

registrar: nask



Holders Contact object: data restricted



Whois database last updated: 2003.10.31

Cytat
Aha i ten skrypt wyżej do sprawdzania domen może być także stosowany do wyszukiwania domen np. org , com , net, biz, info ,itd....?

Tak i nie. Tzn. Skrypt może być ten sam tylko inny jest adres serwera whois. Niestety nie ma ogólnoświatowego lub chociażby ogólnoeuropejskiego wspólnego whoisa dla domen (w przeciwieństwie do np. klas adresowych), więc trzeba wiedzieć gdzie szukać.
Cytat
A jak nie to czy istnieje jakiś inny do wyszukiwania domen tych co podałem wyżej !!questionmark.gif

Dla domen .com, .org, .net zamień sobie serwer whois.dns.pl na whois.internic.net.
Cytat
I na ile procent ten skrypt wyżej do wyszukiwania domen jest pewny? smile.gif

Skrypt? Pytasz czy działa on prawidłowo i zwraca prawidłowe dane? U mnie działa w porządku (przykładowy wynik pokazałem wyżej). Dane są takie jakie udostępnia NASK lub inny rejestrator. Można założyć, że są pewne.
harek
[quote="adwol"][quote]hmm troche dwne wywala mi jedno zdanie w którym coś tam pisze po angielsku i niżej jest link troche takie mało potrzben :] czy to jest te whois ?[/quote]
Dziwne, mi wypisuje pełne dane z whoisa. Przykładowo dla php.pl:
Kod
% This is the NASK WHOIS Server.

% This server provides information only for PL domains.

% For more info please see http://www.dns.pl/english/whois.html



Domain object:

domain:     php.pl

type:       PRIVATE

registranti's handle: nsk238571

nservers:     pi229.poznan.sdi.tpnet.pl.

              athena.pgb.pl.[213.17.224.51]

created:        2000.05.24

last modified:  2003.09.03

registrar: nask



Holders Contact object: data restricted



Whois database last updated: 2003.10.31
A mi wywala tylko trzy te pierwsze linijki
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.