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

Java获取IP地址和域名:

2016-10-11 22:50 691 查看
获取IP地址和域名:

本实例实现获取IP地址和域名的功能,能够获取本机的IP地址,机器名,以及远程服务器的IP地址。
关键技术:
获取IP地址和域名的关键技术:
---通过java.net.InetAddress的getLocalHost静态方法可以获得本机的网络地址信息,也是一个InetAddress对象

---通过InetAddress的getHostAddress的实例方法可以获取该网络地址的IP信息。
----通过InetAddress的getHostName的实例方法可以获得该网络地址的IP信息。
----InetAddress的getByName静态方法根据域名获得该域名代表的主机的网络地址信息,返回的是一个InetAddress对象
---当一个主机配置多个网络地址时,可以通过InetAddress的getAllByName静态方法根据域名获得该域名代表的主机的所有网络地址信息,返回的是一组InetAddress对象。

import java.net.InetAddress;
import java.net.UnknownHostException;
public class GetIPAddress {
//获取本机的IP地址
public static String  getLocalIP() throws UnknownHostException {
InetAddress  addr=InetAddress.getLocalHost();
return addr.getHostAddress();
}

//获取本机的机器名
public static String getLocalHostName() throws UnknownHostException{
InetAddress addr=InetAddress.getLocalHost();
return addr.getHostName();
}

//根据域名好的本机的IP地址
public static String  getIPByName(String  hostName) throws UnknownHostException{
InetAddress  addr=InetAddress.getByName(hostName);
return addr.getHostAddress();
}

//根据域名获得主机所有的IP地址
public static  String[]  getAllIPByName(String  hostName) throws UnknownHostException{
InetAddress[]  addrs=InetAddress.getAllByName(hostName);
String[]  ips=new String[addrs.length];
for (int i = 0; i < ips.length; i++) {
ips[i]=addrs[i].getHostAddress();
}
return  ips;
}

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

//获得百度的IP地址
String  hostName="www.baidu.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]);
}
}
}


分析:

(1)getLocalIP方法获得本机的IP地址,首先通过InetAddress的getLocalHost静态方法获得本机的网络地址信息,然后通过getHostAddress实例方法获得该网络地址的IP地址;getLocalHostName方法获得本机的机器名,调用了getHostName方法。

(2)getIPByName方法根据域名获得主机的IP地址,使用了InetAddress的getByName静态方法;getAllIPByName方法根据域名获得主机的所有IP地址,使用了InetAddress的getAllByName方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java