一、获取本机IP地址
Java可以通过InetAddress类获取本机的IP地址,InetAddress是Java中表示IP地址的类,它可以创建InetAddress对象表示指定主机名对应的IP地址或表示IP地址字符串对应的IP地址。
示例代码如下:
import java.net.InetAddress; public class GetLocalIpAddress { public static void main(String[] args) throws Exception{ InetAddress IP=InetAddress.getLocalHost(); System.out.println("本机IP地址为:"+IP.getHostAddress()); } }
运行结果如下:
本机IP地址为:192.168.1.1
二、获取指定域名的IP地址
Java可以通过InetAddress类获取指定域名的IP地址,通过域名解析得到对应的IP地址。
示例代码如下:
import java.net.InetAddress; public class GetIpAddress { public static void main(String[] args) throws Exception{ InetAddress address = InetAddress.getByName("www.baidu.com"); System.out.println("百度IP地址为:" + address.getHostAddress()); } }
运行结果如下:
百度IP地址为:104.193.88.74
三、获取本机所有IP地址
一个主机可能有多个IP地址,可以通过NetworkInterface类获取该主机所有与网络接口相关的IP地址。
示例代码如下:
import java.net.InetAddress; import java.net.NetworkInterface; import java.util.Enumeration; public class GetAllIpAddress { public static void main(String[] args) throws Exception{ Enumerationinterfaces = NetworkInterface.getNetworkInterfaces(); while(interfaces.hasMoreElements()){ NetworkInterface networkInterface = interfaces.nextElement(); Enumeration addresses = networkInterface.getInetAddresses(); while(addresses.hasMoreElements()){ InetAddress address = addresses.nextElement(); if (!address.isLinkLocalAddress() && !address.isLoopbackAddress() && address.isSiteLocalAddress()){ System.out.println(networkInterface.getName() + " " + address.getHostAddress()); } } } } }
运行结果如下:
eth0 192.168.1.1 eth1 10.10.10.1
四、总结
通过InetAddress类和NetworkInterface类,在Java中可以方便地获取本机IP地址、指定域名的IP地址、以及本机所有的IP地址。