如何在Java中从域名获取IP地址?

27

我正在编写一个应用程序,需要获取IP地址。我有一个域名,想知道如何从中获取IP地址。例如,“www.girionjava.com”。我该如何在Java编程中获取此网站的IP地址?谢谢。

5个回答

35
InetAddress giriAddress = java.net.InetAddress.getByName("www.girionjava.com");

接下来,如果你想要将IP地址转换为字符串

String address = giriAddress.getHostAddress();

11

这应该很简单。

InetAddress[] machines = InetAddress.getAllByName("yahoo.com");
for(InetAddress address : machines){
  System.out.println(address.getHostAddress());
}

这会获取轮询 DNS 上的所有 IP 吗? - Joehot200

6
InetAddress.getByName("www.girionjava.com")

0

(在打印正弦Java时,额外的掩码考虑所有整数都是有符号的,但IP地址是无符号的)

InetAddress[] machines = InetAddress.getAllByName("yahoo.com");
for(InetAddress address : machines){
  byte[] ip = address.getAddress();
  for(byte b : ip){
    System.out.print(Integer.toString(((int)b)&0xFF)+".");
  }
  System.out.println();
}

2
这意味着您将只获取IPv4地址。 IPv6地址的格式不同,因此无论如何都不应手动格式化它。 - Joachim Sauer

-1
Java.net中的InetAddress类有一些静态方法可以实现这个功能。
        InetAddress a = InetAddress.getByName ("www.girionjava.com");
        System.out.println(a.getHostAddress());     

这是非常基础的东西,如果你想要更完整地控制 DNS 查询,你就需要使用额外的库。


1
欢迎来到 Stack Overflow!请先阅读[回答]并[编辑]您的答案,以便包含关于此代码如何解决问题的说明。请记住,您不仅是在解决问题,还在教育提问者和任何未来的读者。 - Adriaan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接