[php] whois-domeinnamen. Hoe controleren?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Topicstarter
ik heb volgende code
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
$socket = fsockopen("$NICserver", 43);

  if(!$socket){
    echo "FOUT bij het controleren!";
    }
    
  else {
    fputs($socket,"$zoek \n");
    while(!feof($socket)){
        $uitvoer .= fgets($socket,128);
        }
    fclose($socket);
    }

Nu zou ik graag een andere boodschap weergeven indien de domeinnaam niet beschikbaar meer is, ipv de whois-gegevens.
Dus bijvoorbeeld: "sorry, deze domeinnaam is al bezet"
En indien deze wel beschikbaar is, de mogelijkheid geven tot kopen.

Maar op welke manier kan ik controleren of op welke wijze geeft de nicserver terug ofdat hij reeds bestaat of niet?

Acties:
  • 0 Henk 'm!

  • Akerboom
  • Registratie: Juni 2001
  • Laatst online: 07-07 16:30

Akerboom

Codito, ergo sum

met dns_get_record() kan je de DNS servers van een domein opvragen.
een domein wat niet bestaat heeft geen dns server, dit werkt jammer genoeg niet voor alle extenties, zoals bv. .tv omdat daar altijd de default pagina van de .tc coropation achter zit.

Acties:
  • 0 Henk 'm!

  • Alex
  • Registratie: Juli 2001
  • Laatst online: 20-08 21:38
Tormentor: Is niet halabara sowieso issut daarnaast erg langzaam
-FoX-: Er verschijnt een standaard reactie van de NICserver. Los je het simpel op:
PHP:
1
print ($uitvoer == "Domain not yet registered.") ? "Niet geregistreerd" : $uitvoer;

'Domain not yet registered.' zou de NICserver dan terug geven.

Deze post is bestemd voor hen die een tegenwoordige tijd kunnen onderscheiden van een toekomstige halfvoorwaardelijke bepaalde subinverte plagiale aanvoegend intentioneel verleden tijd.
- Giphart


Acties:
  • 0 Henk 'm!

  • maartenba
  • Registratie: November 2001
  • Laatst online: 29-07-2024
Zoek eens op hotscripts naar een scriptje als dit, daar zit meestal een lijst bij met het zinnetje dat de whois-server terugstuurt als de domeinnaam niet geregistreerd is.
Het volstaat dan om uit dat bestand het juiste zinnetje voor een bepaald TLD te gaan lezen, en als dit voorkomt in de uitvoer van de whois-server, dan is ie niet geregged, anders wel...

Acties:
  • 0 Henk 'm!

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Topicstarter
bedankt voor alle commentaar, ik heb het nu werkende gekregen dankzij:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
$available = "No such domain";
$available2 = "no match";

IF (eregi($available,$uitvoer)){
    echo ("<font color=\"blue\"><b>www.$domein.$ext is nog beschikbaar!</b></font>");
}
ELSEIF (eregi($available2,$uitvoer)){
    echo ("<font color=\"blue\"><b>www.$domein.$ext is nog beschikbaar!</b></font>");
}
ELSE{
    echo ("<font color=\"red\"><b>www.$domein.$ext is reeds ingenomen.</b></font>");
}


:Y)

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 18-09 16:51
Stom systeem, dat ze gewoon ff true en false retouneren, zou een stuk handiger zijn. En nu maar hopen dat ze de tekst niet een beetje aanpassen... :*)

[ Voor 3% gewijzigd door djluc op 28-12-2002 11:57 ]


Acties:
  • 0 Henk 'm!

  • Alex
  • Registratie: Juli 2001
  • Laatst online: 20-08 21:38
Waarom gebruik je het relatief langzame eregi? En niet gewoon

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
$available = "No such domain"; 
$available2 = "no match"; 

IF ($available == $uitvoer){ 
    echo ("<font color=\"blue\"><b>www.$domein.$ext is nog beschikbaar!</b></font>"); 
} 
ELSEIF ($available2 == $uitvoer){ 
    echo ("<font color=\"blue\"><b>www.$domein.$ext is nog beschikbaar!</b></font>"); 
} 
ELSE{ 
    echo ("<font color=\"red\"><b>www.$domein.$ext is reeds ingenomen.</b></font>"); 
}

Deze post is bestemd voor hen die een tegenwoordige tijd kunnen onderscheiden van een toekomstige halfvoorwaardelijke bepaalde subinverte plagiale aanvoegend intentioneel verleden tijd.
- Giphart


Acties:
  • 0 Henk 'm!

  • sjroorda
  • Registratie: December 2001
  • Laatst online: 18-09 15:28
Op http://www.mattsscripts.co.uk/mwhois.htm staat een volledig script, inclusief mer dan 200 TLD's met bijbehorende gegevens.

Acties:
  • 0 Henk 'm!

Verwijderd

Tja en omdat het nou nog een tegroot script is wat kleiner kan...
PHP:
1
2
3
4
5
6
7
8
9
10
<?
$available = "No such domain";  
$available2 = "no match";  

IF (($available == $uitvoer) OR ($available2 == $uitvoer)) {  
    echo ("<font color=\"blue\"><b>www.$domein.$ext is nog beschikbaar!</b></font>");  
} ELSE {  
    echo ("<font color=\"red\"><b>www.$domein.$ext is reeds ingenomen.</b></font>");  
}
?> 

Acties:
  • 0 Henk 'm!

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Topicstarter
Verwijderd schreef op 28 december 2002 @ 12:37:
Tja en omdat het nou nog een tegroot script is wat kleiner kan...
PHP:
1
2
3
4
5
6
7
8
9
10
<?
$available = "No such domain";  
$available2 = "no match";  

IF (($available == $uitvoer) OR ($available2 == $uitvoer)) {  
    echo ("<font color=\"blue\"><b>www.$domein.$ext is nog beschikbaar!</b></font>");  
} ELSE {  
    echo ("<font color=\"red\"><b>www.$domein.$ext is reeds ingenomen.</b></font>");  
}
?> 
dit gaat niet werken, aangezien de string niet alleen "no match" of "no such domain" teruggeeft. Maar een hele blok tekst waar dit zinnetje in voorkomt.

maar ik snap wel wat je wil zeggen :)

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Dan zou je nog steeds simpelere string methodens kunnen gebruiken. Regexpen zijn meer om bepaalde patronen te zoeken. strstr is dacht ik een functie die de positie van een string in een string zoekt (en -1 terug geeft waneer deze er niet in zit). Deze werkt heel wat efficienter dan een regexp.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1