Java 获取IP地址和域名

概要:

通过java.net.InetAddress类的静态方法getLocalHost()能够获得本机的网络地址信息,也是一个InetAddress对象。

InetAddress类的getHostAddress()方法,能获取该网络地址的IP信息。getHostName()方法获取网络地址的域名或者机器名。静态方法getByName()根据域名获得该域名代表的主机的网络地址信息,返回的是一个InetAddress对象。

当一个主机配置多个网络地址时,可以通过InetAddress类的getAllByName()静态方法根据域名获得该域名代表的主机的所有网络地址信息,返回的是InetAddress对象。

| |目录

示例

package net.xsoftlab.baike;

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

public class TestGetIPAndDomain {
	// 获取本机的IP地址
	public static void getLocalIP() {
		try {
			InetAddress addr = InetAddress.getLocalHost();// 创建本地主机IP地址对象
			String hostAddr = addr.getHostAddress();// 获取IP地址
			String hostName = addr.getHostName();// 获取本地机器名
			System.out.println("本地IP地址:" + hostAddr);
			System.out.println("本地机器名:" + hostName);
		} catch (UnknownHostException e) {// 捕获未知主机异常
			System.out.println("不能获得主机IP地址:" + e.getMessage());
			System.exit(1);
		}
	}

	public static void getIPByName(String hostName) {// 根据域名获得主机的IP地址
		InetAddress addr;
		try {
			addr = InetAddress.getByName(hostName);// 根据域名创建主机地址对象
			String hostAddr = addr.getHostAddress();// 获取主机IP地址
			System.out.println("域名为:" + hostName + "的主机IP地址: " + hostAddr);
		} catch (UnknownHostException e) {// 捕获未知主机异常
			System.out.println("不能根据域名获取主机IP地址:" + e.getMessage());
			System.exit(1);
		}
	}

	public static void getAllIPByName(String hostName) {// 根据域名获得主机所有的IP地址
		InetAddress[] addrs;
		try {
			addrs = InetAddress.getAllByName(hostName);// 根据域名创建主机地址对象
			String[] ips = new String[addrs.length];
			System.out.println("域名为" + hostName + "的主机所有的IP地址为:");
			for (int i = 0; i < addrs.length; i++) {
				ips[i] = addrs[i].getHostAddress();// 获取主机IP地址
				System.out.println(ips[i]);
			}
		} catch (UnknownHostException e) {// 捕获未知主机异常
			System.out.println("不能根据域名获取主机所有IP地址:" + e.getMessage());
			System.exit(1);
		}
	}

	public static void main(String[] args) {
		getLocalIP();// 调用方法获得本机的IP地址
		String hostName = "wwww.baidu.com";// 百度域名
		getIPByName(hostName);// 获取百度的主机IP地址
		getAllIPByName(hostName);// 获取百度域名主机所有的IP地址
	}
}


评论关闭
评论 还能输入200
评论关闭
评论 还能输入200
  • 全部评论(0)
资料加载中...
已关注 , 取消