package com.sjf;
import java.net.Inet4Address;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.UnknownHostException;
import java.util.Enumeration;
/**
*
* @author sjf0115
*
*/
public class InetAddressExample {
public static void main(String[] args)
{
// Get the network interfaces and associated for this host
try
{
NetworkInterface networkInterface = null;
// 获得该主机每一个接口的信息
Enumeration<NetworkInterface> interfaceList = NetworkInterface.getNetworkInterfaces();
if(interfaceList == null)
{
System.out.println("--No interfaces found--");
}//if
else
{
while(interfaceList.hasMoreElements())
{
networkInterface = interfaceList.nextElement();
// 接口名称
System.out.println("Interface->"+networkInterface.getName());
// 获取与接口相关联的地址 根据主机的不同配置 可能包含IPV4或IPV6地址
Enumeration<InetAddress> inetAddressList = networkInterface.getInetAddresses();
if(inetAddressList == null)
{
System.out.println("--No address for this NetworkInterface--");
}//if
else
{
InetAddress address = null;
while(inetAddressList.hasMoreElements())
{
address = inetAddressList.nextElement();
// 对每个地址进行检测判断属于哪个IP地址子类
System.out.print(address instanceof Inet4Address ? "(v4)" : (address instanceof Inet6Address ? "(v6)" : "(?)"));
// 打印IP地址
System.out.println(":"+address.getHostAddress());
}//while
}
}//while
}
}
catch (Exception e)
{
}
String host = "www.baidu.com";
try
{
// 一个名字可能关联了多个数字地址 该方法返回一组与给定主机名相关联的所有地址的实例
InetAddress[] addressesList = InetAddress.getAllByName(host);
for(InetAddress address : addressesList)
{
System.out.println(address.getHostName()+" "+address.getHostAddress());
}//for
// Determines the IP address of a host, given the host‘s name.
InetAddress address2 = InetAddress.getByName(host);
System.out.println(address2.getHostName()+" "+address2.getHostAddress());
// Returns the local host.
InetAddress address3 = InetAddress.getLocalHost();
System.out.println(address3.getHostName()+" "+address3.getHostAddress());
}
catch (UnknownHostException e)
{
e.printStackTrace();
}
}
}
时间: 2024-09-30 09:51:25