[java] Java에서 InetAddress 개체 만들기

문자열 (예 : localhost또는 127.0.0.1) 에있는 IP 번호 또는 이름으로 지정된 주소를 InetAdress 개체 로 변환 하려고 합니다. 생성자는 없지만 InetAddress 를 반환하는 정적 메서드가 있습니다. 따라서 호스트 이름을 얻더라도 문제가되지 않지만 IP 번호를 얻으면 어떻게됩니까? byte [] 를 얻는 한 가지 방법이 있지만 이것이 어떻게 도움이 될 수 있는지 잘 모르겠습니다. 다른 모든 방법은 호스트 이름을 가져옵니다.

InetAddress API 문서



답변

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();
        }
    }
}


답변