`

Java获得一个域名的IP地址

    博客分类:
  • J2SE
阅读更多
如何用Java获得一个域名的IP地址呢?提供这个功能的类叫做java.net.InetAddress。我们假设现在有这样一个域名,它用一个静态的getByName来重新获得一个InetAddress,然后得到可以读出的IP地址。下面的代码是非常基本的命令行。

  import java.net.InetAddress;
  import java.net.UnknownHostException;
  public class NsLookup {
   static public void main(String[] args) {
   try {
  InetAddress address = InetAddress.getByName(args[0]);
  System.out.println(args[0]+"
  : "+address.getHostAddress());
   }
   catch(UnknownHostException uhe) {
  System.err.println("Unable to find: "+args[0]);
   }
   }
  }

InetAddress也可以通过使用getAddress()来获得IP地址,但是它的返回值是一个4个字节的数组。因此尽管getAddress()在获得IP方面是有用的,但却不适于用来输出。

上面的命令的输出结果看起来就是这样:

  bash$ java code.NsLookup www.sun.com
  www.sun.com: 192.18.97.241
有时一个域名会包含不止一个IP地址,比如微软的Web服务器,这是为了保持负载平衡。InetAddress提供了一种可以得到一个域名的所有IP地址的方法。让我们来考虑以下代码:

  import java.net.InetAddress;
  import java.net.UnknownHostException;
  public class NsLookup {
   static public void main(String[] args) {
  try {
  String name = args[0];
  InetAddress[] addresses = InetAddress.getAllByName(name);
   for(int i=0; i<addresses.length; i++) {
  System.out.println(name+"["+i+"]
  : "+address.getHostAddress());
   }
    } catch(UnknownHostException uhe) {
   System.err.println("Unable to find: "+args[0]);
   }
   }
  }
  对于www.sun.com,将会输出:



  bash$ java code.NsLookup www.sun.com
  www.sun.com[0]: 192.18.97.241
  然而,对于www.microsoft.com,将会输出:



  bash$ javad code/NsLookup.java
  www.microsoft.com
  www.microsoft.com[0]: 207.46.230.218
  www.microsoft.com[1]: 207.46.197.101
  www.microsoft.com[2]: 207.46.230.229
  www.microsoft.com[3]: 207.46.197.113
  www.microsoft.com[4]: 207.46.230.219
  www.microsoft.com[5]: 207.46.230.220
[6">www.microsoft.com[6]: 207.46.197.102
  由于InetAddress,localhost必须要特别处理。如果字符串“localhost”直接进入NsLookup程序的原始版本,就会得到以下相当无用的结果: 

  bash$ java code.NsLookup www.sun.com
  localhost: 127.0.0.1
  我们可以手动寻找本地地址:

  try {
   InetAddress localhost = InetAddress.getLocalHost();
   System.out.println
  ("localhost: "+localhost.getHostAddress());
   System.out.println
  ("localhost: "+localhost.getHostName());
   } catch(UnknownHostException uhe) {
   System.err.println
  ("Localhost not seeable. Something is odd. ");
   }
  这里是一个输出的例子:

  localhost: 192.168.13.15
  localhost: crab
  本地主机的域名并没有返回完整的该机器的域名,这是因为它取决于该机器的设置。

  最后,InetAddress可能会被用来将IP地址转变为这些地址的域名,这对于分析Web日志是很有用的。InetAddress使得开发者们可以轻松的和域名、IP地址打交道,并且使他们可以不必和DNS服务器进行交互。
分享到:
评论

相关推荐

    JAVA发送邮件和获取ip地址

    在Java编程中,发送邮件和获取IP地址是两个常见的任务,尤其在系统集成、通知服务或者数据通信中。下面将详细讲解这两个知识点。 首先,让我们来看看如何使用Java发送邮件。在Java中,我们通常使用JavaMail API来...

    java 获取 IP 地址

    7. **.jar 文件**:`获取域名所在IP地址.jar`是一个Java应用程序的可执行文件,由Java编译器编译后的字节码文件(.class)打包而成。运行这个.jar文件,用户可以直接执行程序,无需安装Java开发环境。 总结来说,这...

    java中用正则表达式检测IP地址是否合理

    本文将详细介绍如何使用Java中的正则表达式来检查一个IP地址的有效性。 #### 1. 正则表达式简介 正则表达式是一种强大的文本处理工具,它可以通过单一的字符串来描述一组字符串,并能够快速地进行匹配、查找或替换...

    JAVA获取别人的ip地址

    本文将详细介绍如何通过Java编程语言实现一个简单的程序来获取客户端的IP地址。 #### 二、核心知识点解析 ##### 1. Java中的`InetAddress` `InetAddress`是Java中用于表示和处理IP地址的一个类。它提供了多种方法...

    用Java编程获得本机和服务器IP地址

    在Java编程中,获取本机和服务器的IP地址是一项常见的任务,这有助于建立网络连接、进行定位服务或者进行网络通信。下面将详细解释如何通过Java实现这个功能。 首先,我们需要了解IP地址的基本概念。IP地址...

    通过IP地址获得域名和主机名

    1. **获取域名**:当你有一个IP地址并想要找到关联的域名时,可以使用`InetAddress`的`getHostByAddress()`方法。例如: ```java import java.net.InetAddress; public class Main { public static void main...

    java 获取网址的IP地址

    在Java编程中,获取网址的IP地址是一项...总的来说,Java中获取网址的IP地址是一个基本但重要的网络编程任务,它依赖于`InetAddress`类提供的功能。通过熟练掌握这些知识,开发者可以有效地进行网络通信和数据传输。

    域名IP地址解析工具(IPV4+IPV6)

    该工具可解析输入域名下对应的所有IP地址(包括IPV4地址和IPV6地址),自己写来用的,分享给大家,提供的是jar包,未混淆代码,可以工具查看源码,如果需要可编译的源码可私聊我。 例子: 解析域名:www.baidu.com ...

    用java获取IP地址

    此时,可以使用`InetAddress.getAllByName()`方法来获取一个域名对应的所有IP地址。 ##### 示例代码 ```java import java.net.InetAddress; import java.net.UnknownHostException; public class NsLookup { ...

    get_mac_address_using_java.rar_获取IP地址_获取mac地址

    而要获取远程IP地址,可以使用`InetAddress.getByName(String host)`方法,传入目标主机的域名或IP地址即可。 接下来,我们转向MAC地址的获取。MAC地址通常用于设备间的直接通信,例如局域网内的通信。在Java中,...

    java实现获得对方IP地址

    综上所述,Java获取IP地址的方法主要包括使用`InetAddress.getByName()`解析域名,或在建立`Socket`连接后获取对端IP。在实际开发中,还需要考虑异常处理和网络环境的多样性。如果你正在处理的"Get.java"文件中涉及...

    这是 IPinfo.io IP 地址 API 的官方 Java 客户端库,允许您查找自己的 IP 地址,或获取 IP 的以下任何

    这是 IPinfo.io IP 地址 API 的官方 Java 客户端库,允许您查找自己的 IP 地址,或获取 IP 的以下任何详细信息: IP地理定位数据(城市、地区、国家、邮政编码、经纬度) ASN 信息(ISP 或网络运营商、关联域名和...

    Java开发源代码获得特定网站的IP地址.rar

    在这个例子中,`getByName`方法会尝试解析给定的域名,如果成功,它会返回一个`InetAddress`对象,我们可以调用`getHostAddress`方法获取IP地址。如果解析失败,`UnknownHostException`会被抛出,我们应该捕获这个...

    JAVA获得域名IP地址的方法

    5. `getServerIP(String domain)`方法是获取特定域名IP地址的关键。它接收一个字符串参数,即要查询的域名,然后调用`InetAddress.getAllByName(String host)`方法。这个方法会返回一个`InetAddress`对象的数组,...

    使用Java实现DNS域名解析的简单示例

    在上述代码中,`InetAddress.getByName()`方法用于根据域名获取IP地址,`getLocalHost()`用于获取本地主机的IP地址,`getAllByName()`则用于获取一个域名对应的所有IP地址,这在多IP环境如负载均衡中非常有用。...

    IP地址HTTP请求工具类

    获取本地IP地址,获取本地Host名称,获取Linux下的IP地址,获取用户真实IP地址,get/post请求 相应的工具类

    Java实现IPV6地址查询

    2. **创建IPv6Bean对象**:为每个查询的IPv6地址创建一个`IPv6Bean`实例,存储IP地址本身以及后续查询得到的地理位置信息。 3. **执行查询**:在`IpV6Seeker`类中,实现一个方法,接受IPv6地址作为参数,使用ZX库的...

    获取主机名和IP地址

    在许多应用场景中,如服务器管理、网络诊断、分布式系统设计等,都需要知道一个设备在网络中的标识,即主机名和IP地址。下面我们将深入探讨这个主题。 首先,主机名是一个便于人类记忆的计算机在网络中的唯一标识,...

    java ip 地址分析

    例如,你可以使用`getByName(String host)`方法来根据主机名获取IP地址,或者使用`getAllByName(String host)`来获取所有可能的IP地址(对于有多个IP的域名)。 ```java InetAddress address = InetAddress....

    Java代码测试IP是否为真实IP

    在IT行业中,网络编程是...通过以上步骤,我们可以构建一个完整的Java工程,实现对IP地址的真实性和可达性的测试。在实际开发中,可能还需要考虑线程安全、性能优化、异常处理等多方面因素,以确保代码的稳定性和效率。

Global site tag (gtag.js) - Google Analytics