이 주어진 : 내가 URL의 최상위 도메인을 식별 할 방법java를 사용하여 URL 개체의 최상위 도메인을 식별하는 방법은 무엇입니까?
URL u=new URL("someURL");
..
이 주어진 : 내가 URL의 최상위 도메인을 식별 할 방법java를 사용하여 URL 개체의 최상위 도메인을 식별하는 방법은 무엇입니까?
URL u=new URL("someURL");
..
사용 URL#getHost()
하고, 그 후 String#split()
"\\."
에 필요한 경우.
업데이트 : 실제로 IP 주소가 호스트 인 경우 InetAddress#getHostName()
을 독립적으로 사용해야합니다.
url의 호스트 부분은 docs에 따라 RFC 2732를 준수합니다. 단순히 문자열을 문자열로 나누는 것만으로도 충분하지 않습니다.
String host = u.getHost();
으로 충분하지 않습니다. 호스트를 검색 할 때 RFC 2732를 준수하는지 확인하거나 모든 주소가 server.com 형식임을 보장 할 수 있으면 마지막 주소를 검색 할 수 있습니다. 끈에 넣고 tld를 잡아라.
그래서 top-level domain part 만 갖고 싶습니까?
//parameter urlString: a String
//returns: a String representing the TLD of urlString, or null iff urlString is malformed
private String getTldString(String urlString) {
URL url = null;
String tldString = null;
try {
url = new URL(urlString);
String[] domainNameParts = url.getHost().split("\\.");
tldString = domainNameParts[domainNameParts.length-1];
}
catch (MalformedURLException e) {
}
return tldString;
}
테스트 해 보겠습니다.
@Test
public void identifyLocale() {
String ukString = "http://www.amazon.co.uk/Harry-Potter-Sheet-Complete-Series/dp/0739086731";
logger.debug("ukString TLD: {}", getTldString(ukString));
String deString = "http://www.amazon.de/The-Essential-George-Gershwin/dp/B00008GEOT";
logger.debug("deString TLD: {}", getTldString(deString));
String ceShiString = "http://例子.测试";
logger.debug("ceShiString TLD: {}", getTldString(ceShiString));
String dokimeString = "http://παράδειγμα.δοκιμή";
logger.debug("dokimeString TLD: {}", getTldString(dokimeString));
String nullString = null;
logger.debug("nullString TLD: {}", getTldString(nullString));
String lolString = "lol, this is a malformed URL, amirite?!";
logger.debug("lolString TLD: {}", getTldString(lolString));
}
출력 :
ukString TLD: uk
deString TLD: de
ceShiString TLD: 测试
dokimeString TLD: δοκιμή
nullString TLD: null
lolString TLD: null
귀하의 솔루션은 .co.uk 도메인에서 부족합니다. – pila
매우 유사한, 거의 중복 : http://stackoverflow.com/questions/1379958/domain-name-interpretation-utility-for-java – skaffman
을 ... "최상위 도메인"! = "도메인 이름"(... "uk"! = "www.amazon.co.uk") – Abdull