簡體   English   中英

使用php進行域和子域驗證

[英]Domain and sub domain validation using php

$domain= "stackexchange.com";
if (checkdnsrr($domain,"MX")){
    echo "yup! " . $domain ." is valid domain";
    }
else{
    echo "nope " . $domain ." invalid domain!";
}

我使用此代碼檢查輸入的域是否有效。 它的工作但是當我在其中提供子域時,它表示未找到域

$domain= "wordpress.stackexchange.com";
    if (checkdnsrr($domain,"MX")){
        echo "yup! " . $domain ." is valid domain";
        }
    else{
        echo "nope " . $domain ." invalid domain!";
    }

如果我插入此代碼,它來了,域名未找到。 有沒有人有解決方案?

正如用戶Linus指出的那樣,子域不一定具有MX記錄。 更好地檢查A記錄。

即便如此,域名可能具有有效的DNS記錄,但該站點可能不存在。

檢查站點是否存活的更好方法是使用fsockopen()函數。

例如:

function isValidSite($url, $port = 80, $timeout = 1) {
    $isValid = false;
    $check = @fsockopen($url, $port, $errno, $errstr, $timeout);
    if ($check) {
        $isValid = true;
        @fclose($check);
    }
    return $isValid;
}

var_dump(isValidSite('test.stackexchange.com')); // returns 'true'

即便如此......這可能不是一個有效的測試。 當您嘗試訪問不存在的子域時,某些Web服務器將實現捕獲所有規則以重定向到404頁面或顯示警告。

另一種選擇是發出CURL GET請求並使其僅返回頭部並檢查響應頭部代碼是否為200(HTTP OK)以驗證域/子域是否有效。 這取決於你如何處理這些不同的場景......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM