`
alan3258
  • 浏览: 70480 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA编程获取IP地址

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

import java.net.InetAddress;

import java.net.UnknownHostException;

ublic class NsLookup
{

tatic 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方面是有用的,但却不适于用来输出。

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


ash$ 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;

ublic class NsLookup {

tatic 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,将会输出:


ash$ java code.NsLookup www.sun.com

www.sun.com[0]: 192.18.97.241

然而,对于www.microsoft.com,将会输出:


ash$ 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程序的原始版本,就会得到以下相当无用的结果:


ash$ 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获取客户端IP地址

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

    java获取ip地址

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

    java程序 获取ip某个主机地址 获得本机的ip地址

    java程序 获取ip某个主机地址 获得本机的ip地址 java程序 获取ip某个主机地址 获得本机的ip地址

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

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

    java编程实现获取服务器IP地址及MAC地址的方法

    在Java编程中,获取服务器的IP地址和MAC地址是常见的需求,特别是在网络通信和系统管理中。本篇文章将详细介绍如何使用Java实现这一功能,包括针对单网卡和多网卡环境的情况。 首先,获取服务器的IP地址通常涉及到`...

    Java获取ip所在地区

    本文将详细讲解如何在Java环境中,通过读取纯真IP数据库来获取IP地址所在地区。 首先,要理解IP地址和地理位置之间的关联。IP地址是一个由四部分组成的数字标识,用于在网络中唯一标识一台设备。而地理位置信息则是...

    JAVA发送邮件和获取ip地址

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

    java获取公网IP

    本文将详细讨论如何使用Java编程语言来获取公网IP地址。 首先,我们需要理解获取公网IP的基本原理。通常,当我们的设备连接到互联网时,ISP(Internet Service Provider,互联网服务提供商)会分配一个公网IP。这个...

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

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

    获取本地IP地址的小程序

    通过学习和理解这个小程序,开发者不仅可以掌握如何在Java中获取IP地址,还能进一步探讨网络编程的基础,包括异常处理、网络接口遍历等技术。同时,这种开源和分享的精神也是IT社区的重要组成部分,促进大家共同进步...

    Java获取客户端真实IP地址

    ### Java获取客户端真实IP地址详解 在Web开发中,获取客户端的真实IP地址是一个常见的需求,尤其是在需要进行地理位置定位、安全审计、流量统计等场景下。然而,在存在反向代理服务器的环境中,传统的`request....

    Java中获取IP地址,主机名称,网卡地址

    Java 中获取 IP 地址、主机名称、网卡地址是 NETWORK 编程中的一个重要主题。在 Java 中,我们可以使用 InetAddress 类和 Runtime 类来获取这些信息。下面我们来详细介绍如何获取 IP 地址、主机名称、网卡地址。 ...

    java 获取计算机名与IP地址

    接下来,我们讨论如何获取IP地址。IP地址是互联网上设备的唯一标识,分为IPv4和IPv6两种类型。同样,我们可以使用`InetAddress`类来获取: ```java import java.net.InetAddress; import java.net....

    java获取ip地址返回地区

    在Java编程中,获取IP地址并返回对应的国家、地区以及城市信息是一项常见的需求,尤其是在进行网络定位或数据分析时。为了实现这一功能,开发者通常会利用IP数据库,如QQwry IP库,它包含了全球IP地址与地理位置的...

    java 获取 IP 地址

    在Java编程语言中,获取IP地址是一项常见的任务,特别是在网络编程和服务器开发中。这个程序虽然界面简单,但核心功能强大,它能够帮助开发者获取指定域名对应的IP地址。以下是关于这个话题的一些详细知识点: 1. *...

    java获取linux服务器上的IP操作

    在本文中,我们将详细介绍Java获取Linux服务器上的IP操作,包括Linux服务器上的网络接口、回环接口、获取IP地址的方法等。 Linux服务器上的网络接口 在Linux服务器上,网络接口是用来发送和接受数据包的基本设备...

    IP工具类,通过传入的request获取ip地址(JAVA)

    在这个例子中,`ServerHttpRequest`的`getRemoteAddress().getHostString()`方法用于获取IP地址。同样,如果在反向代理环境中,我们需要检查`X-Forwarded-For`头来获取真实的IP: ```java String forwardedFor = ...

    根据IP地址获取经纬度

    标题中的“根据IP地址获取经纬度”是指在Java编程环境下,通过特定的库或API来实现从IP地址解析出地理位置的经纬度坐标。这通常涉及到网络编程和地理信息系统(GIS)的技术。描述中提到的Java工程是实现这个功能的一...

    idea,java获取ip地址

    2. **获取IP地址**:`HttpServletRequest`对象有一个`getRemoteAddr()`方法,它返回客户端的IP地址。然而,如果应用运行在反向代理服务器(如Nginx)后,这个方法可能会返回代理服务器的IP。因此,我们需要检查`X-...

    JAVA获取别人的ip地址

    通过上述分析,我们可以看到Java提供了强大的网络编程支持,通过简单的API调用即可实现获取IP地址的功能。然而,在实际项目开发中还需要考虑更多的细节问题,例如安全性、用户体验等。希望本文能为读者提供一定的...

Global site tag (gtag.js) - Google Analytics