Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Sprawdzanie domen
Forum PHP.pl > Forum > Gotowe rozwiązania
Narg
Witam...

Zastanawiałem się gdzie dać ten post. Dotyczy on coprawda modyfikacji instniejącego skryptu jednak po przejrzeniu postów na forum Skrypty doszedłem do wniosku że poruszane są tam proste rzeczy więc zdecydowałem się na to forum. Jeżeli to komuś specjalnie przeszkadza to przepraszam i prosze moderatora o przesunięcie tematu, ale do rzeczy:

Potrzebuje skryptu do sprawdzania domen, a jak wiadomo niejest to tak dokońca prosta sprawa (niestety) więc postanowiłem skorzystać z gotowca (skrypt mrwhois) Problem w tym, że sprawdza on tylko domeny *.com, *.net, *.org, *.biz, a ja dodatkowo potrzebuje jeszcze *.pl i polskich funkcjonalnych (*.net.pl etc...) ale do rzeczy: mam taki skrypt: (moje modyfikacje oznaczyłem #####)

http://foa.sarnet.pl/team/narg/whois.txt

Wszystko ladnie pięknie tyle, że w przypadku domen *.pl zawsze wywala że domena jest zajęta choć tak niejest... niewiem w czym jest bład. Próbowałem zmieniać dane whois ale bez rezultatu. Prosze o pomoc lub jakąs sugestie która pomoże mi samodzielnie napisać taki skrypt, a może znacie inne tego typu obsługujące większą ilość domen?

Z góry dzięki za pomoc smile.gif

Pozdrawiam
Narg

PS. sorki za tak długi kod ale niejest on taki straszny jak wygląda smile.gif połowa to definicje stałych i ustawienie stylów css... smile.gif
Kwadrat
Zobacz tutaj, moze pomoże...

http://forum.php.pl/viewtopic.php?t=6766
Narg
hmm... thx smile.gif

qrde na lolka teraz wyszedłem tongue.gif jakoś mi ten topic umknoł a przed napisaniem mojego postu dość dokładnie przeszukiwałem forum bo byłem pewny że to się napewno już pojawiło smile.gif dziwna ta wyszukiwarka w phpbb - bo moim zapytanią nie moge nic zarzucić tongue.gif tongue.gif tongue.gif

cóż jeszcze raz dzięki smile.gif

Pozdrawiam
Narg
ixtab
Może małe odświeżenie tematu... Mam dokładnie ten sam problem, a link, który podał Kwadrat jest już dead... Od wczoraj szukam rozwiązania i testuje mnóstwo różnych skryptów typu whois. Oto kod
  1. <?php
  2. function checkDomain($domain,$server,$findText){
  3. // Open a socket connection to the whois server
  4. $con = fsockopen($server, 43);
  5. if (!$con) return false;
  6.  
  7. // Send the requested doman name
  8. fputs($con, $domain."\r\n");
  9.  
  10. // Read and store the server response
  11. $response = ' :';
  12. while(!feof($con)) {
  13. $response .= fgets($con,128);
  14. }
  15.  
  16. // Close the connection
  17. fclose($con);
  18.  
  19. // Check the response stream whether the domain is available
  20. if (strpos($response, $findText)){
  21. return true;
  22. }
  23. else {
  24. return false;
  25. }
  26. }
  27.  
  28. function showDomainResult($domain,$server,$findText){
  29. if (checkDomain($domain,$server,$findText)){
  30. echo "<tr><td>$domain</td><td>AVAILABLE</td></tr>";
  31. }
  32. else echo "<tr><td>$domain</td><td>TAKEN</td></tr>";
  33. }
  34. ?>
  35.  
  36. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
  37. <html>
  38. <body>
  39. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="domain">
  40. Domain name:
  41. <table>
  42. <tr><td><input name="domainname" type="text" /></td></tr>
  43. <tr><td><input type="checkbox" name="com" checked/>.pl</td></tr>
  44. <tr><td><input type="submit" name="submitBtn" value="Check domain"/></td></tr>
  45. </table>
  46. </form>
  47. <?php
  48. // The form was submitted
  49. if (isset($_POST['submitBtn'])){
  50. $domainbase = (isset($_POST['domainname'])) ? $_POST['domainname'] : '';
  51. $d_com = (isset($_POST['com'])) ? 'com' : '';
  52.  
  53. // Check domains only if the base name is big enough
  54. if (strlen($domainbase)>2){
  55. echo '<table>';
  56. if ($d_com != '')
  57. showDomainResult($domainbase.".pl",'whois.dns.pl','No match for');
  58. echo '</table>';
  59. }
  60. }
  61. ?>
  62. </body>


Nie zwracajcie uwagi na ".com" w kilku miejscach, jeśli uda się doprowadzić skrypt do stanu używalności, to wszystko się poprawi. Problem w tym, że dla domeny .PL skrypt zawsze wyrzuci, że domena jest już zajęta mimo że w rzeczywistości jest inaczej...
faflok
spróbuj inny whois np: whois.crsnic.net u mnie działa
Janek85
Dla potomnych, którzy szukają odpowiedzi na ww pytanie. Skrypt działa, należy tylko zmienić frazę sprawdzaną z odpowiedzią jaką daje nam serwer.

poprawny kod:
  1. // Check domains only if the base name is big enough
  2. if (strlen($domainbase)>2){
  3. echo '<table>';
  4. if ($d_com != '')
  5. showDomainResult($domainbase.".pl",'whois.dns.pl','No information available');
  6. echo '</table>';
  7. }


działający kod ixtab'a, do własnych poprawek:
  1. <?php
  2. function checkDomain($domain,$server,$findText){
  3. // Open a socket connection to the whois server
  4. $con = fsockopen($server, 43);
  5. if (!$con) return false;
  6.  
  7. // Send the requested doman name
  8. fputs($con, $domain."\r\n");
  9.  
  10. // Read and store the server response
  11. $response = ' :';
  12. while(!feof($con)) {
  13. $response .= fgets($con,128);
  14. }
  15.  
  16. // Close the connection
  17. fclose($con);
  18.  
  19. // Check the response stream whether the domain is available
  20. if (strpos($response, $findText)){
  21. return true;
  22. }
  23. else {
  24. return false;
  25. }
  26. }
  27.  
  28. function showDomainResult($domain,$server,$findText){
  29. if (checkDomain($domain,$server,$findText)){
  30. echo "<tr><td>$domain</td><td>AVAILABLE</td></tr>";
  31. }
  32. else echo "<tr><td>$domain</td><td>TAKEN</td></tr>";
  33. }
  34. ?>
  35.  
  36. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
  37. <html>
  38. <body>
  39. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="domain">
  40. Domain name:
  41. <table>
  42. <tr><td><input name="domainname" type="text" /></td></tr>
  43. <tr><td><input type="checkbox" name="com" checked/>.pl</td></tr>
  44. <tr><td><input type="submit" name="submitBtn" value="Check domain"/></td></tr>
  45. </table>
  46. </form>
  47. <?php
  48. // The form was submitted
  49. if (isset($_POST['submitBtn'])){
  50. $domainbase = (isset($_POST['domainname'])) ? $_POST['domainname'] : '';
  51. $d_com = (isset($_POST['com'])) ? 'com' : '';
  52.  
  53. // Check domains only if the base name is big enough
  54. if (strlen($domainbase)>= 2){
  55. echo '<table>';
  56. if ($d_com != '')
  57. showDomainResult($domainbase.".pl",'whois.dns.pl','No information available');
  58. echo '</table>';
  59. }
  60. }
  61. ?>
  62. </body>


sprawdza domeny pl od 2 znaków.
Jeśli ktoś szuka bardziej rozbudowanego whois, polecam: http://www.phpwhois.org/

pozdrawiam.

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-2024 Invision Power Services, Inc.