您的位置:首页 > 编程语言 > Java开发

java获取ip代码(全部复制运行)

2013-06-03 15:58 232 查看
/*

无论你是在打电话、发送邮件或建立与Internet的连接,地址是基础。InetAddress 类用来封装我们前面讨论的数字式的IP地址和该地址的域名。你通过一个IP主机名与这个类发生作用,IP主机名比它的IP地址用起来更简便更容易理解。InetAddress 类内部隐藏了地址数字。

  一、工厂方法

  InetAddress 类没有明显的构造函数 。为生成一个InetAddress对象,必须运用一个可用的工厂方法。工厂方法(factory method)仅是一个类中静态方法返回一个该类实例的约定。这是在一个带有各种参数列表的重载构造函数完成的,当持有惟一方法名时可使结果更清晰。对于InetAddress,三个方法getLocalHost( )、getByName( )以及getAllByName( )可以用来创建InetAddress的实例。三个方法显示如下:

  static InetAddress getLocalHost( )

   throws UnknownHostException

  static InetAddress getByName(String hostName)

   throws UnknownHostException

  static InetAddress[ ] getAllByName(String hostName)

   throws UnknownHostException

  getLocalHost( )仅返回象征本地主机的InetAddress对象。get-ByName( )方法返回一个传给它的主机名的InetAddress。如果这些方法不能解决主机名,它们引发一个UnknownHostException异常。

  在Internet上 ,用一个名称来代表多个机器是很常有的事。Web服务器中,也有方法提供一定程度的缩放 。getAllByName( )工厂方法返回代表由一个特殊名称分解的所有地址的InetAddresses类数组。在不能把名称分解成至少一个地址时,它将引发一个 Unknown Host-

Exception异常。

  下面的例子

*/

package com.prochanges.ft;

import java.net.*;

public class ymJXIP {

    InetAddress myIPaddress = null;

    InetAddress myServer = null;

    public static void main(String args[]) {

    ymJXIP mytool;

        mytool = new ymJXIP();

        System.out.println("Your host IP is: " + mytool.getMyIP());

        System.out.println("The Server IP is :" + mytool.getServerIP());

    }

    // 取得LOCALHOST的IP地址

    public InetAddress getMyIP() {

        try {

            myIPaddress = InetAddress.getLocalHost();

        } catch (UnknownHostException e) {

        }

        return (myIPaddress);

    }

    // 取得 www.abc.com 的IP地址

    public InetAddress getServerIP() {

        try {

            myServer = InetAddress.getByName("www.baidu.com");

        } catch (UnknownHostException e) {

        }

        return (myServer);

    }

}

/*

  下面是 该程序的输出
Your host IP is: XP-201207090916/192.168.0.46
The Server IP is :www.baidu.com/119.75.217.56

  二、实例方法

  InetAddress 类也有一些非静态的方法,列于下面,它们可以用于讨论过的方法返回的对象:

boolean equals(Object other)如果对象具有和other相同的Internet地址则返回true。byte[ ] getAddress( )返回代表对象的Internert地址的以网络字节为顺序的有四个元素的字节数组。String getHostAddress( )返回代表与InetAddress对象相关的主机地址的字符串。String getHostName( )返回代表与InetAddress对象相关的主机名的字符串。int hashCode( )返回调用对象的散列码。boolean
isMulticastAddress( )如果Internet地址是一个多播地址返回true;否则返回false。String toString( )返回主机名字符串和IP地址。

  Internet地址在分层的缓存服务器系列中被找到。这意味着你的本地机可能像 知道它自己和附近的服务器一样知道一个名称-IP地址的自动映射。对于其他名称 ,它可能向一个本地DNS服务器询问IP地址信息。如果那个服务器不含一个指定的地址,它可以到一个远程的站点去询问。这可以一路通到名为InterNIC(internic.net)的根服务器。该过程可能需要比较长的时间,所以结构化你的代码以使你在本地存储IP地址信息而不是重复向上查找信息是一个明智之举。

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息