需求说明:
根据提供的 IP 地址,获取主机名称和域名
实现思路:
创建 GetHostNameByIpAddress 类,在main方法中声明 String 类型的变量 ipAddress,调用 ipAddress 字符中的split方法分割字符串,指定的分隔符是“·”,并将方法返回值保存到 String 类型的数组变量 ipArr 中
实例化 byte 类型的数组变量 ipByteArr,用来保存 IP 地址,该数组长度与数组 ipArr 的长度相等
使用 for 循环遍历数组 ipArr,取出数组内的每个元素。调用 Integer 类的 parseInt(String s) 方法,将数组内的每个元素转成 int 类型,顺序保存到数组 ipByteArr 中
通过调用 InetAddress 对象的 getByAddress(byte[] addr) 方法,返回一个 InetAddress 对象,调用该对象的 getHostAddress() 方法、getCanonicalHostName() 方法和 getHostName() 方法,可以分别获取本机的 IP地址、域名和主机名称
实现代码:
import java.net.InetAddress; import java.net.UnknownHostException; public class Inet { public static void main(String[] args){ InetAddress ip = null; try { ip = InetAddress.getLocalHost(); } catch (UnknownHostException e) { e.printStackTrace(); } System.out.println("本机的IP地址:"+ip.getHostAddress()); System.out.println("本机的域名:"+ip.getCanonicalHostName()); System.out.println("本机的主机名称:"+ip.getHostName()); } }
import java.net.InetAddress; import java.net.UnknownHostException; public class GetHostNameByIpAddress { public static void main(String[] args) throws UnknownHostException { InetAddress localHost = InetAddress.getLocalHost(); //保存IP地址 String ipAddress = "172.20.36.17"; // String ipAddress = localHost.toString(); // System.out.println(ipAddress); //根据符号“.”将IP地址分割为一个字符串数组 String[] ipArr = ipAddress.split("\\."); //用来保存IP地址的byte数组 byte[] ipByteArr = new byte[ipArr.length]; for (int i = 0; i < ipArr.length; i++) { //将字符串转成整数 int m = Integer.parseInt(ipArr[i]); //将int类型的数字转成byte类型 ipByteArr[i] = (byte)m; } InetAddress inetAddress = InetAddress.getByAddress(ipByteArr); } }