IP番号または名前で指定されたアドレスを文字列(つまりlocalhost
または127.0.0.1
)でInetAdressオブジェクトに変換しようとしています。コンストラクターはありませんが、InetAddressを返す静的メソッドがあります。したがって、ホスト名を取得しても問題はありませんが、IP番号を取得するとどうなりますか?byte []を取得するメソッドが1つありますが、それがどのように役立つかはわかりません。他のすべてのメソッドはホスト名を取得します。
IP番号または名前で指定されたアドレスを文字列(つまりlocalhost
または127.0.0.1
)でInetAdressオブジェクトに変換しようとしています。コンストラクターはありませんが、InetAddressを返す静的メソッドがあります。したがって、ホスト名を取得しても問題はありませんが、IP番号を取得するとどうなりますか?byte []を取得するメソッドが1つありますが、それがどのように役立つかはわかりません。他のすべてのメソッドはホスト名を取得します。
回答:
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);
byte[] loopback = {0x7f,0x00,0x00,0x01};
これは、任意のWebサイトの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();
}
}
}