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

/*
无论你是在打电话、发送邮件或建立与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地址信息而不是重复向上查找信息是一个明智之举。
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值