2012-01-01 35 views
18

Nếu tôi có miền như www.example.com và tôi muốn kiểm tra xem nó có sẵn bằng cách sử dụng bản ghi DNS (không phải whois) ...kiểm tra xem miền có khả dụng hay không sử dụng PHP?

Có thể làm điều này bằng cách sử dụng PHP không?

+4

Nếu bởi "có sẵn", bạn có nghĩa là có thể mua hoặc đăng ký, bạn không thể xác định điều này đáng tin cậy sử dụng DNS. Ví dụ, 'moose9moose2.ph' có sẵn, nhưng có một bản ghi A. Mặc dù 'ph.moose9moose2' không có bản ghi DNS nhưng không có sẵn để đăng ký. Bạn có thể thử thêm quy tắc để bao gồm tất cả các trường hợp có thể xảy ra, nhưng bạn có thể sẽ không bao giờ kết thúc. –

+1

@David, đúng, nhưng nếu dns không đủ, bạn sẽ đề xuất gì thay thế? – David19801

+1

Xem câu hỏi bạn đã sao chép: Whois. – KingCrunch

Trả lời

29

Bạn có thể sử dụng checkdnsrr hoặc GetHostByName:

Tài liệu:

http://www.php.net/checkdnsrr

http://www.php.net/gethostbyname

Ví dụ checkdnsrr:

<?php 
if (checkdnsrr('example.com.', 'ANY')) { 
    echo "DNS Record found"; 
} 
else { 
    echo "NO DNS Record found"; 
} 
?> 

Ví dụ GetHostByName:

<?php 
$domain = 'example.com'; 
if (gethostbyname($domain) != $domain) { 
    echo "DNS Record found"; 
} 
else { 
    echo "NO DNS Record found"; 
} 
?> 
+1

Điều này hiển thị như được tìm thấy cho mọi thứ ... ví dụ - if (checkdnsrr ('examjhkasdjkhbasdle.com', 'BẤT K' ')) { echo "Bản ghi DNS đã tìm thấy"; } else { echo "KHÔNG tìm thấy bản ghi DNS"; } – David19801

+0

đây là ví dụ thứ hai sử dụng gethostbyname: favo

+8

Giải pháp: để checkdnsrr hoạt động, bạn phải thêm dấu chấm sau tên miền, ví dụ: checkdnsrr ('example.com.', "ANY") – David19801

1

Certainly. This là điều sẽ xảy ra cho một miền khả dụng.

0

tôi nên đi cho gói này Domain-Availability nó hỗ trợ rất nhiều miền cấp trên và được viết bằng một cách Object Oriented .

1

Điều đó tùy thuộc vào ý bạn của "có sẵn". Nếu bạn có nghĩa là có sẵn để đăng ký, nó không thể xác định dựa trên thông tin DNS một mình. Hệ thống whois phải được sử dụng. Một cách dễ dàng để kiểm tra là lấy một tên miền không sử dụng và đặt máy chủ tên thành một cái gì đó không hợp lệ. DNS sẽ không khả dụng nhưng miền vẫn không khả dụng để đăng ký. Tôi vừa thử nghiệm các gợi ý của checkdnsrr(), gethostbyname() và dns_get_record(). Tất cả chỉ ra rằng không có DNS nào được trả lại cho một miền không thể đăng ký được.

Các câu dưới đây cung cấp một số chi tiết: Checking if a domain name is registered

Các vấn đề liên quan