[英]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.