2010-07-08 5 views
12

하위 도메인이없는 URL에서 도메인을 가져 오는 적절한 방법은 무엇입니까?URL에서 하위 도메인없이 도메인 가져 오기

자바에서는 문자열에서 새 URL (urlString)을 만들고 getHost()를 호출 할 수 있지만 하위 도메인이 있습니다. 같은 호스트가있을 수 있기 때문에

문제는 : subhost.example.com 및 subhost.example.co.uk

합니다 (참조 co.uk 등이 두 부분 도메인의 다른 몇 가지가 있습니다 목록에 https://wiki.mozilla.org/TLD_List).

도메인을 얻는 유일한 올바른 방법은 TLD 목록을 통해 검색하고, 호스트의 끝에서 TLD를 제거하고, 호스트의 마지막 기간 이전에 모든 것을 제거하는 것입니다. 이 작업을 수행하는 기존 방법이 있습니까? 나는 java.net.URL에서 하나도 보지 못했고, 아파치 공유지를 조금 확인했지만 거기서 찾지 못했습니다.

+0

관련 정보는 http://stackoverflow.com/questions/3199343/regex-to-match-domain-cctld –

답변

12

나는이 몇 년 늦게 알고 있지만 사람이 질문을 통해 실수를 한단다 경우 다음을 시도하십시오

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

은 위의 example.co.uk 반환합니다.

+3

에 있습니다.이 수업은 Google Guava 라이브러리 – nerdherd

+2

에 있습니다. 좋은 정보 주셔서 감사합니다! 독립 실행 형 항아리에이 라이브러리가 포함 된 Selenium WebDriver를 사용하여이를 참조 할 수있었습니다. ".name"은 개인 변수이므로 작동하지 않습니다. http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/net/InternetDomainName.html – Lukus

+0

@ 루카스 맞습니다. 나는 그루비에 이것을 쓰고 있었다. – Dan

관련 문제