Cyh的博客

Email:kissyan4916@163.com
posts - 26, comments - 19, trackbacks - 0, articles - 220

网络编程>>获取IP地址和域名

Posted on 2009-12-12 15:35 啥都写点 阅读(678) 评论(0)  编辑  收藏 所属分类: J2SE
  
     通过java.net.InetAddress的getLocalHost静态方法能够获得本机的网络地址信息,也是一个InetAddress对象。
     InetAddress的getHostAddress实例方法,能获取该网络地址的IP信息。
     InetAddress的getHostName实例方法获取网络地址的域名或者机器名。
     InetAddress的getByName静态方法根据域名获得该域名代表的主机的网络地址信息,返回的是一个InetAddress对象。
     当一个主机配置多个网络地址时,可以通过InetAddress的getAllByName静态方法根据域名获得该域名代表的主机的所有网络地址信息,返回的是一个组InetAddress的对象。

/**----------------------------------GetIPAddress.java----------------------------------------*/

import java.net.InetAddress;
import java.net.UnknownHostException;

/**
 * 获取IP地址和机器名
 
*/

public class GetIPAddress {

    
/**
     * 获取本机的IP地址
     * 
@return
     * 
@throws UnknownHostException
     
*/

    
public static String getLocalIP() throws UnknownHostException {
        InetAddress addr 
= InetAddress.getLocalHost();
        
return addr.getHostAddress();
    }


    
/**
     * 获取本机的机器名
     * 
@return
     * 
@throws UnknownHostException
     
*/

    
public static String getLocalHostName() throws UnknownHostException {
        InetAddress addr 
= InetAddress.getLocalHost();
        
return addr.getHostName();
    }

    
/**
     * 根据域名获得主机的IP地址
     * 
@param hostName    域名
     * 
@return
     * 
@throws UnknownHostException
     
*/

    
public static String getIPByName(String hostName)
            
throws UnknownHostException {
        InetAddress addr 
= InetAddress.getByName(hostName);
        
return addr.getHostAddress();
    }

    
/**
     * 根据域名获得主机所有的IP地址
     * 
@param hostName    域名
     * 
@return
     * 
@throws UnknownHostException
     
*/

    
public static String[] getAllIPByName(String hostName)
            
throws UnknownHostException {
        InetAddress[] addrs 
= InetAddress.getAllByName(hostName);
        String[] ips 
= new String[addrs.length];
        
for (int i = 0; i < addrs.length; i++{
            ips[i] 
= addrs[i].getHostAddress();
        }

        
return ips;
    }

    
    
public static void main(String[] args) throws UnknownHostException {
        
// 获取本机的IP地址和机器名
        System.out.println("Local IP: " + GetIPAddress.getLocalIP());
        System.out.println(
"Local HostName: " + GetIPAddress.getLocalHostName());

        
// 获得微软网站的IP
        String hostName = "www.microsoft.com";
        System.out.println(
"域名为" + hostName + "的主机的IP地址:");
        System.out.println(GetIPAddress.getIPByName(hostName));

        System.out.println(
"域名为" + hostName + "的主机的所有IP地址:");
        String[] ips 
= GetIPAddress.getAllIPByName(hostName);
        
for (int i = 0; i < ips.length; i++{
            System.out.println(ips[i]);
        }

    }

}



                                                                                                       --    学海无涯