`

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
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地址库.doc

    JAVA解析纯真IP地址库 获取IP地址解析出IP所在地区 代码完整

    java IP地址工具类,java IP地址获取,java获取客户端IP地址

    在Java编程中,获取IP地址是一项常见的任务,特别是在网络编程和服务器开发中。这个"java IP地址工具类"是为了解决这个问题而设计的。它提供了便捷的方法来获取和处理IP地址,尤其对于获取客户端IP地址在Web应用中至...

    java地址解析和反向地址解析

    Java地址解析和反向地址解析是网络编程中的关键概念,主要涉及到网络通信中IP地址与域名之间的转换。本文将深入探讨这两个主题,并提供相关的实践应用示例。 **一、地址解析** 地址解析,通常指的是DNS(Domain ...

    JAVA解析纯真IP地址库

    通过IP 获取其地址是比较常见的,例如很多网站都会记录你的登录地点,并提醒你的账户信息是否安全等。 本文详细说明主类、工具类、常量值类、封装国家和地区的实体类、范围记录类、IP地址类等具体的编码内容。

    java 获取 IP 地址

    5. **多线程考虑**:为了不阻塞主线程(例如,防止GUI冻结),解析IP地址的操作可能需要在单独的线程中执行。Java提供了`Thread`类和`Runnable`接口来实现多线程。 6. **煮酒论剑社区**:这个`煮酒论剑社区.txt`...

    java实现根据ip地址获取地理位置的代码分享

    总的来说,Java中获取IP地址地理位置的方法主要是通过HTTP请求第三方API并解析返回的文本或JSON数据。这个过程涉及到网络通信、字符编码、字符串处理以及JSON解析等多个知识点,理解并掌握这些基础技能对于进行类似...

    java获取ip地址

    ### Java获取IP地址知识点解析 在本篇文章中,我们将深入探讨如何使用Java语言来获取IP地址。这是一项在网络编程中非常基础且重要的技能,能够帮助开发者了解客户端或服务器的网络位置信息。以下是对给定文件中的...

    Java获取ip所在地区

    3. **查询IP地址**:在解析库的帮助下,我们可以输入一个IP地址,通过二分查找等高效算法,快速定位到该IP地址在数据库中的记录。记录通常包括起始IP、结束IP以及对应地理位置的信息。 4. **提取地理位置信息**:...

    java根据ip获取国家、地区名称,附带ip地址库

    在Java编程中,根据IP地址获取国家和地区名称是一项常见的需求,尤其在数据分析、网络监控或者用户定位等场景中。这个话题涉及到的主要知识点包括IP地址处理、数据库查询以及使用第三方库。 首先,IP地址是一个32位...

    ip查询归属地收藏 Java 查询IP地址

    IP归属地查询主要是通过解析IP地址来确定其地理位置信息,包括国家、地区、城市等。这在网络安全、广告定位、数据统计等领域有广泛的应用。 ### 使用Java进行IP地址查询的方法 #### 1. 数据文件加载 代码中提到了...

    ip地址管理器用java语言实现

    在IP地址管理器中,我们可能会用到InetAddress的getByName()方法来解析IP字符串,或者getHostAddress()方法来获取对象所表示的IP地址。 IP地址的过滤是指根据特定规则筛选出允许或禁止通信的IP。这可能涉及正则...

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

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

    ip2location.jar_java解析架包.rar

    标题中的“ip2location.jar_java解析架包.rar”指出,这是一个与IP地址定位相关的Java组件的压缩包。这个组件主要用于解析IP2Location的BIN文件,这些文件通常包含了大量的IP地址数据库,可以用来获取IP地址对应的...

    java解析IP库获取对应中文省市及运营商(IP数据截止2014年10月)

    2. **IP地址处理**:在Java中,IP地址通常表示为字符串形式,如"192.168.0.1"。我们可以使用InetAddress类进行IP地址的转换和验证。例如,通过InetAddress.getByName()方法将字符串转换为InetAddress对象,再通过...

    java实现ip数据包的分析

    Java 实现 IP 数据包分析是一项涉及网络编程与协议解析的技术工作。在 Java 中,我们可以使用 `java.net` 包中的 Socket 和 Datagram 类来处理网络通信,但这些类并不直接支持 IP 层的数据包操作。因此,要进行 IP ...

    ip地址所属地域解析

    总的来说,这些文件共同构成了一个IP地址解析系统,通过"IPSeeker"来查找和解析IP地址,"IPEntry"存储和管理解析结果,"IMGFilter"处理地图图像,"Filter"对数据进行过滤,而"IPDate"则处理与IP地址相关的日期和时间...

    解析Java根据ip查询所在地区

    总之,Java中根据IP查询所在地区涉及的知识点包括IP地址的结构、第三方库的使用(如GeoIP2)、HTTP请求的发送与响应解析、以及正则表达式的运用。这些技能结合在一起,可以帮助我们实现高效、准确的IP地址查询功能。

    根据IP地址获取经纬度

    在Java中,`java.net.InetAddress`类可用于解析IP地址并获取相关的信息。 2. **MaxMind数据库**:MaxMind是一家提供IP位置信息服务的公司,其GeoIP数据库是业界广泛使用的IP地理位置数据来源。GeoIPJava库是用于...

    java获取ip地址返回地区

    总结,Java获取IP地址并返回国家、地区和城市名称的过程主要包括:获取IP地址、加载QQwry数据库、查询IP信息以及解析查询结果。通过这个过程,开发者可以为网络应用程序增加更丰富的地理定位功能。不过需要注意,这...

    java ip地址解析省市区运营商

    Java标准库本身并不提供解析IP到省市区运营商的功能。通常需要借助第三方库,如`ip-api.com`提供的API或者`GeoIP`数据库(例如MaxMind的GeoLite2数据库)。 5. **HTTP请求**: 使用Java的`HttpURLConnection`或第...

Global site tag (gtag.js) - Google Analytics