Autor | Zpráva | ||
---|---|---|---|
jirikovovideni Profil |
#1 · Zasláno: 6. 7. 2014, 16:46:05
Zdravím mám kód na ověření dostupnosti domén.Jde mi ověřit,ale jen jedna najednou.Nevěděl by někdo jak kód upravit pro hromadné ověřevání domén.díky za tipy
<?php if (!empty($_POST['ok'])) { if (checkdnsrr($_POST['domena'])) echo "Doména ".$_POST['domena']." je již obsazena!"; else echo "Doména ".$_POST['domena']." je volná!"; } ?> <form action="" method="post"> <p align="center"> www.<input type="text" name="domena" value="např.seznam.cz"/><input type="submit" name="ok" /> </form> |
||
Taps Profil |
#2 · Zasláno: 6. 7. 2014, 16:54:28
jirikovovideni:
Seznam domén, které chceš ověřit musíš uložit do pole a pole pak pomocí foreach projít. |
||
jirikovovideni Profil |
#3 · Zasláno: 6. 7. 2014, 17:00:17
Mohl by jsi mi prosím dát příklad v php
|
||
Taps Profil |
jirikovovideni:
if (isset($_POST['ok'])) { foreach($_POST['domena'] as $polozky){ if (checkdnsrr($polozky)) echo "Doména ".$polozky." je již obsazena!<br>"; else echo "Doména ".$polozky." je volná!<br>"; } } ?> <form action="" method="post"> <p align="center"> www.<input type="text" name="domena[]" value="např.seznam.cz"/><br> www.<input type="text" name="domena[]" value="např.seznam.cz"/><br> www.<input type="text" name="domena[]" value="např.seznam.cz"/> <br> <input type="submit" name="ok" /> </form> |
||
jirikovovideni Profil |
#5 · Zasláno: 6. 7. 2014, 17:14:21
Taps jsi nejlepší,díky funguje to.Ještě bych se chtěl zeptat jestli existuje způsob jak dát třeba tři domény do jednoho pole formuláře.
|
||
Taps Profil |
#6 · Zasláno: 6. 7. 2014, 17:19:34
jirikovovideni:
existuje, ale jednotlivé položky musí být něčím odděleny (středník, čárka..), poté tyto položky rozdělíš pomocí explode opět do pole |
||
Petr_ Profil * |
#7 · Zasláno: 6. 7. 2014, 17:20:44
jirikovovideni:
Budou-li v inputu zadány domény tak, že se oddělí čárkou, pak je stačí pomocí explode rozdělit do pole, a pak to pole jen projít cyklem (jak uvádí Taps). Např: $domeny = explode(",", $_POST['domena']); foreach($domeny as $domena) { echo $domena; // nebo ten tvůj skript s $domena místo $_POST } |
||
jirikovovideni Profil |
#8 · Zasláno: 6. 7. 2014, 18:13:00
Ne asi ale určitě jsem se v to ztratil
<? if (isset($_POST['ok'])) { $domeny = explode(",", $_POST['domena']); foreach($domeny['domena'] as $polozky){ if (checkdnsrr($polozky)) echo "Doména ".$polozky." je již obsazena!<br>"; else echo "Doména ".$polozky." je volná!<br>"; } } ?> <form action="" method="post"> <p align="center"> www.<input type="text" name="domena[]" value="např.seznam.cz"/><br> <input type="submit" name="ok" /> |
||
Taps Profil |
jirikovovideni:
v případě explode použij jen <input type="text" name="domena" value="např.seznam.cz"/> <? foreach($domeny as $polozky) ?> |
||
jirikovovideni Profil |
#10 · Zasláno: 6. 7. 2014, 18:46:32
Taps děkuji mockrát,jseš znalec
|
||
Micruss Profil |
#11 · Zasláno: 6. 7. 2014, 18:50:25
Mno trošku bych to poupravil, pokud uživatel nepoužije "," tak to hodí php error s off setem, takže bych tam přidal podmínku
if(strpos($_POST['domena'], ",")!== FALSE) { // explode(); atd... } |
||
jirikovovideni Profil |
#12 · Zasláno: 6. 7. 2014, 19:03:15
Ještě jsem objevil jeden problém domeny .cz,.eu to kontroluje v pořádku ale domeny .com mi píše,že je volná,přitom je obsazená
|
||
aDAm Profil |
#13 · Zasláno: 7. 7. 2014, 11:28:46
to proto protože se domény takto neověřují. musíš minimálně přes whois.
|
||
jirikovovideni Profil |
Tak po umorném hledání jsem našel toto a funguje to super,akorát mě nezajímá majitel domény apod. jen jestli je doména volná nebo obsazená.Potřeboval bych poradit co vyhodit,a´t nepoškodím kód a zobrazilo se mi jen volná nebo obsazená.
<?php $domain = $_GET['domain']; // For the full list of TLDs/Whois servers see http://www.iana.org/domains/root/db/ and http://www.whois365.com/en/listtld/ $whoisservers = array( "com" => "whois.verisign-grs.com", "coop" => "whois.nic.coop", // cr - Costa Rica - no whois server assigned // cu - Cuba - no whois server assigned // cv - Cape Verde - no whois server assigned // cw - Curacao - no whois server assigned "cx" => "whois.nic.cx", // Christmas Island // cy - Cyprus - no whois server assigned "cz" => "whois.nic.cz", // Czech Republic "de" => "whois.denic.de", // Germany "net" => "whois.verisign-grs.net", "org" => "whois.pir.org", "pl" => "whois.dns.pl", // Poland "sk" => "whois.sk-nic.sk", // Slovakia "uk" => "whois.nic.uk", // United Kingdom "us" => "whois.nic.us", // United States function LookupDomain($domain){ global $whoisservers; $domain_parts = explode(".", $domain); $tld = strtolower(array_pop($domain_parts)); $whoisserver = $whoisservers[$tld]; if(!$whoisserver) { return "Error: No appropriate Whois server found for $domain domain!"; } $result = QueryWhoisServer($whoisserver, $domain); if(!$result) { return "Doména $domain je volná!"; } else { while(strpos($result, "Whois Server:") !== FALSE){ preg_match("/Whois Server: (.*)/", $result, $matches); $secondary = $matches[1]; if($secondary) { $result = QueryWhoisServer($secondary, $domain); $whoisserver = $secondary; } } } return "$domain domain lookup results from $whoisserver server:\n\n" . $result; } function LookupIP($ip) { $whoisservers = array( //"whois.afrinic.net", // Africa - returns timeout error :-( "whois.lacnic.net", // Latin America and Caribbean - returns data for ALL locations worldwide :-) "whois.apnic.net", // Asia/Pacific only "whois.arin.net", // North America only "whois.ripe.net" // Europe, Middle East and Central Asia only ); $results = array(); foreach($whoisservers as $whoisserver) { $result = QueryWhoisServer($whoisserver, $ip); if($result && !in_array($result, $results)) { $results[$whoisserver]= $result; } } $res = "RESULTS FOUND: " . count($results); foreach($results as $whoisserver=>$result) { $res .= "\n\n-------------\nLookup results for " . $ip . " from " . $whoisserver . " server:\n\n" . $result; } return $res; } function ValidateIP($ip) { $ipnums = explode(".", $ip); if(count($ipnums) != 4) { return false; } foreach($ipnums as $ipnum) { if(!is_numeric($ipnum) || ($ipnum > 255)) { return false; } } return $ip; } function ValidateDomain($domain) { if(!preg_match("/^([-a-z0-9]{2,100})\.([a-z\.]{2,8})$/i", $domain)) { return false; } return $domain; } function QueryWhoisServer($whoisserver, $domain) { $port = 43; $timeout = 10; $fp = @fsockopen($whoisserver, $port, $errno, $errstr, $timeout) or die("Socket Error " . $errno . " - " . $errstr); //if($whoisserver == "whois.verisign-grs.com") $domain = "=".$domain; // whois.verisign-grs.com requires the equals sign ("=") or it returns any result containing the searched string. fputs($fp, $domain . "\r\n"); $out = ""; while(!feof($fp)){ $out .= fgets($fp); } fclose($fp); $res = ""; if((strpos(strtolower($out), "error") === FALSE) && (strpos(strtolower($out), "not allocated") === FALSE)) { $rows = explode("\n", $out); foreach($rows as $row) { $row = trim($row); if(($row != '') && ($row{0} != '#') && ($row{0} != '%')) { $res .= $row."\n"; } } } return $res; } ?> <html> <head> <title>Whois Lookup Script</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <form action="<?=$_SERVER['PHP_SELF'];?>"> <p><b><label for="domain">Domain/IP Address:</label></b> <input type="text" name="domain" id="domain" value="<?=$domain;?>"> <input type="submit" value="Lookup"></p> </form> <? if($domain) { $domain = trim($domain); if(substr(strtolower($domain), 0, 7) == "http://") $domain = substr($domain, 7); if(substr(strtolower($domain), 0, 4) == "www.") $domain = substr($domain, 4); if(ValidateIP($domain)) { $result = LookupIP($domain); } elseif(ValidateDomain($domain)) { $result = LookupDomain($domain); } else die("Invalid Input!"); echo "<pre>\n" . $result . "\n</pre>\n"; } ?> </body> </html> |
||
Časová prodleva: 11 let
|
0