Autor | Zpráva | ||
---|---|---|---|
Camo Profil |
#1 · Zasláno: 7. 10. 2011, 11:00:40 · Upravil/a: Camo
No nazdar!
Potreboval by som pomôcť so scriptom na overovanie domén. Stiahol som script (max´sWhios) a po nejakých úpravách to už mám skoro hotové: http://web.php5.sk/overDomenu.php Problém je s funkciou strpos(), ktorá v tom scripte hĺadá v odpovedi reťazec, podľa ktorého určí, či je doména obsadená alebo nie. Pri testovaní som narazil na to, že eu domény(ktoré neexistujú) nedokáže zachytiť. V tom linku sa vypisuje aj odpoveď, aj hodnoty, ktoré vracia strpos(). To dúfam pochopíte... Pri eu sa hľadá reťazec "Status: AVAILABLE" (na konci odpovede). Ale strpos ho nevidí. Napadá ma, že odpoveď prichádza v inom kódovaní, ale to zase nechápem, ako to môže ostatným fungovať.?. Pozeral som aj iné podobné scripty, ale nikde sa kódovanie nerieši... funkcia: private function checkDomain($domain,$server,$findText){ $con = fsockopen($server, 43); if (!$con) return false; // Send the requested doman name fputs($con, $domain."\r\n"); // Read and store the server response $response = ' :'; while(!feof($con)) { $response .= fgets($con,128); } // Close the connection fclose($con); $response.='-end'; // Moje informácie k ladeniu... echo '<div style="padding:15px">$response:<br>'.$response.'</div>'; echo '<div style="padding:15px">strpos($response,"%") == '.strpos($response, '%').'</div>'; echo '<div style="padding:15px">strpos($response, "'.$findText.'") == '.strpos($response, $findText).'</div>'; // Check the response stream whether the domain is available if (strpos($response, $findText)){ return true; } else { return false; } } |
||
AM_ Profil |
#2 · Zasláno: 7. 10. 2011, 11:15:20
nejsem si jistý jak odpověď vypadá, ale pokud je Status: AVAILABLE na začátku (v tom řetězci nic jiného není), je pozice podřetězce 0 a podmínka strpos($response, $findText) se vyhodnotí jako 0 tedy FALSE.
Správně by to mělo být if (strpos($response, $findText) !== false){ |
||
Camo Profil |
#3 · Zasláno: 7. 10. 2011, 11:20:22 · Upravil/a: Camo
Odpoveď je na tej stránke vieť(ten text hore).
Ale v tomto to neni. V tej funkcii sa na začiatok odpoveď pridáva " :" takže 0 to nikdy nevráti. Je to v tej funkcii vidno... |
||
Camo Profil |
#4 · Zasláno: 7. 10. 2011, 16:45:15
Tak už to mám vyriešené. V hľadanom výraze bolo treba použiť tabulátor a nie medzeru.
Uf! |
||
Časová prodleva: 11 měsíců
|
|||
Cobeste Profil |
#5 · Zasláno: 31. 8. 2012, 21:11:19
Camo:
Zdravím, mohlol by som prosím dostať funkčný script ktorý by overoval aj slovenské domény. Zatiaľ dostávam stálen len túto chybu. % % whois.sk-nic.sk - whois server for TLD .sk % Srdečná vďaka cobeste@hotmail.com |
||
Camo Profil |
#6 · Zasláno: 1. 9. 2012, 12:09:25
Cobeste:
Použil som tento script: http://www.phpf1.com/product/domain-whois-script.html Ale má zastaralý zoznam odpovedí a adries. |
||
Cobeste Profil |
#7 · Zasláno: 3. 9. 2012, 11:41:37
Camo:
Áno, presne tento skript som použil, len pri sk-doménach mi odpoveď dáva vždy - TAKEN, čokoľvek zadám. Aktuálny zoznam nie je toto - whois.sk-nic.sk? Diky |
||
DJ Miky Profil |
Můžeš si vyzkoušet, jak vypadají odpovědi na existující a neexistující doménu a podle toho můžeš upravit detekování ve skriptu. Server whois.sk-nic.sk pořád platí.
$ whois -h whois.sk-nic.sk asdfghjkl.sk % % whois.sk-nic.sk - whois server for TLD .sk % Not found. $ whois -h whois.sk-nic.sk zoznam.sk % % whois.sk-nic.sk - whois server for TLD .sk % Domain-name zoznam.sk (... informace ...) Valid-date 2013-01-27 Domain-status DOM_OK |
||
Camo Profil |
Cobeste:
No treba si pozrieť čo vlastne whois.sk vracia v prípade obsadenej/voľnej domény. V tom scripte máš pole ktoré testuje určité výrazy, z ktorých viaceré sú neni aktuálne. Už si nepamätám či je to aj prípad whios.sk. Adresa je ale správna. Chyba môže byť v použití medzery miesto tabulátora v odpovedi servera. O tom je celé toto vlákno. |
||
Časová prodleva: 12 let
|
0