| 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: 12 let
|
|||
0