문자열 (예 : localhost
또는 127.0.0.1
) 에있는 IP 번호 또는 이름으로 지정된 주소를 InetAdress 개체 로 변환 하려고 합니다. 생성자는 없지만 InetAddress 를 반환하는 정적 메서드가 있습니다. 따라서 호스트 이름을 얻더라도 문제가되지 않지만 IP 번호를 얻으면 어떻게됩니까? byte [] 를 얻는 한 가지 방법이 있지만 이것이 어떻게 도움이 될 수 있는지 잘 모르겠습니다. 다른 모든 방법은 호스트 이름을 가져옵니다.
답변
getByName 또는 getByAddress 를 사용할 수 있어야합니다 .
호스트 이름은 “java.sun.com”과 같은 시스템 이름이거나 해당 IP 주소의 텍스트 표현 일 수 있습니다.
InetAddress addr = InetAddress.getByName("127.0.0.1");
바이트 배열을 취하는 메소드는 다음과 같이 사용할 수 있습니다.
byte[] ipAddr = new byte[]{127, 0, 0, 1};
InetAddress addr = InetAddress.getByAddress(ipAddr);
답변
InetAddress 용 API에서
호스트 이름은 “java.sun.com”과 같은 시스템 이름이거나 해당 IP 주소의 텍스트 표현 일 수 있습니다. 리터럴 IP 주소가 제공되면 주소 형식의 유효성 만 확인됩니다.
답변
ip = InetAddress.getByAddress(new byte[] {
(byte)192, (byte)168, (byte)0, (byte)102}
);
답변
InetAddress.getByName은 IP 주소에서도 작동합니다.
JavaDoc에서
호스트 이름은 “java.sun.com”과 같은 시스템 이름이거나 해당 IP 주소의 텍스트 표현 일 수 있습니다. 리터럴 IP 주소가 제공되면 주소 형식의 유효성 만 확인됩니다.
답변
API는 사용하기 매우 쉽습니다.
// Lookup the dns, if the ip exists.
if (!ip.isEmpty()) {
InetAddress inetAddress = InetAddress.getByName(ip);
dns = inetAddress.getCanonicalHostName();
}
답변
이것은 모든 웹 사이트의 IP 주소를 얻기위한 프로젝트이며 유용하고 만들기가 쉽습니다.
import java.net.InetAddress;
import java.net.UnkownHostExceptiin;
public class Main{
public static void main(String[]args){
try{
InetAddress addr = InetAddresd.getByName("www.yahoo.com");
System.out.println(addr.getHostAddress());
}catch(UnknownHostException e){
e.printStrackTrace();
}
}
}