2010-07-08 42 views
12

Cách thích hợp để lấy tên miền từ URL không có tên miền phụ là gì?Nhận tên miền không có miền phụ từ URL

Trong Java, từ chuỗi, bạn có thể tạo một URL mới (urlString) và gọi getHost() trên URL, nhưng bạn có tên miền phụ với nó.

Vấn đề là vì có thể có host như: subhost.example.com và subhost.example.co.uk

Có một số khác của các hai lĩnh vực phần như co.uk (xem liệt kê trên https://wiki.mozilla.org/TLD_List). Có vẻ như với tôi cách chính xác duy nhất để chỉ có tên miền là thực hiện tìm kiếm thông qua danh sách TLD, loại bỏ TLD khỏi cuối máy chủ, và lấy đi mọi thứ trước giai đoạn cuối cùng trong máy chủ. Có một phương pháp hiện có thực hiện điều này? Tôi đã không nhìn thấy một trong java.net.URL, và tôi đã kiểm tra apache commons một chút nhưng không thể tìm thấy một ở đó.

+0

Bạn có thể tìm thấy thông tin có liên quan tại: http://stackoverflow.com/questions/3199343/regex-to-match-domain-cctld –

Trả lời

12

Tôi biết đây là một vài năm cuối nhưng nếu có ai tình cờ qua câu hỏi này hãy thử như sau:

InternetDomainName.from("subhost.example.co.uk").topPrivateDomain().name 

trên sẽ trở example.co.uk.

+3

Lưu ý rằng lớp học này nằm trong thư viện Google ổi – nerdherd

+2

Cảm ơn bạn đã thông tin tốt! Sử dụng Selenium WebDriver bao gồm thư viện này trong lọ độc lập để có thể tham khảo nó. Tâm trí bạn, ".name" sẽ không hoạt động vì nó là biến riêng tư. http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/net/InternetDomainName.html – Lukus

+0

@Lukus Đúng vậy. Tôi đã viết điều này trong groovy. – Dan

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