2013-07-03 35 views
12

giải quyết hostname thành địa chỉ IP khá dễ dàng trong Java bằng lớp InetAddress như thế này:Chọn máy chủ DNS để giải quyết hostname trong Java

InetAddress address = InetAddress.getByName("www.example.com"); 

Nhưng phương pháp này sử dụng máy chủ DNS được sử dụng bởi hệ thống đang chạy.

Có cách nào để chỉ định máy chủ DNS sẽ được sử dụng để giải quyết không?

+0

Có các thư viện DNS trong Java, bạn có thể sử dụng chúng – fge

Trả lời

13

Nếu bạn sử dụng Sun Java, bạn có thể sử dụng mã này:

//Override system DNS setting with Google free DNS server 
System.setProperty("sun.net.spi.nameservice.nameservers", "8.8.8.8"); 
System.setProperty("sun.net.spi.nameservice.provider.1", "dns,sun"); 

Xem bài viết trên blog này: How to set a custom DNS server with Java System properties để biết thêm chi tiết.

+0

Tuyệt vời! Cảm ơn bạn rất nhiều vì câu trả lời này! – coroner

+0

một câu hỏi. Nếu tôi phân giải tên miền nhanh (300 mỗi phút), có phải máy chủ DNS đã được cho phép (ví dụ: Máy chủ DNS của Google) không? –

+0

Một vấn đề tiềm ẩn là vấn đề này là toàn cầu. –

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