[Java]套接字地址InetAddress讲解

最后更新于:2022-04-01 09:59:23

~~~ 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(); } } } ~~~ ![这里写图片描述](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-03-18_56eba2a59cbdb.jpg "") ![这里写图片描述](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-03-18_56eba2a5c6479.jpg "") ![这里写图片描述](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-03-18_56eba2a5f1639.jpg "") ![这里写图片描述](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-03-18_56eba2a623b36.jpg "") ![这里写图片描述](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-03-18_56eba2a64e301.jpg "")
';