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

Posted

技术标签:

【中文标题】Java如何从域名中获取IP地址?【英文标题】:How to get the IP address from the Domain Name in Java? 【发布时间】:2011-01-28 13:50:38 【问题描述】:

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

【问题讨论】:

【参考方案1】:
InetAddress giriAddress = java.net.InetAddress.getByName("www.girionjava.com");

那么,如果你想要 IP 作为字符串

String address = giriAddress.getHostAddress();

【讨论】:

【参考方案2】:

这应该很简单。

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

【讨论】:

这是否会在循环 DNS 上获取所有 IP?【参考方案3】:
InetAddress.getByName("www.girionjava.com")

【讨论】:

【参考方案4】:

(打印正弦 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();

【讨论】:

这假设您将只获得 IPv4 地址。 IPv6 地址的格式不同,所以无论如何您都不应该手动格式化。

以上是关于Java如何从域名中获取IP地址?的主要内容,如果未能解决你的问题,请参考以下文章

C#:从域名获取 IP 地址?

JAVA怎么获取IP地址

如何获取某个网站IP地址?

如何绕过用CDN的域名 获取真实IP地址

编程黑科技gethostbyname()函数:通过域名获取IP地址!

Python获取url中域名及从域名中提取ip的方法