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地址信息而不是重複向上查找信息是一個明智之舉。
*/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章