一、什么是IP地址
IP地址,全称为Internet Protocol Address,即Internet协议地址。它是网络上分配给每个连接在互联网上的设备的唯一地址。IP地址由32位二进制数所组成,分为4个8位二进制数,用点号(.)隔开。
例如,192.168.1.1就是一个典型的IP地址。
二、如何获取本机IP地址
在Java中,获取本机IP地址有很多种方式。下面我们介绍两种常用的方式。
1. 使用InetAddress类
InetAddress类表示Internet地址,它提供了获取本机IP地址的常用方法getLocalHost()。
import java.net.InetAddress; public class Main { public static void main(String[] args) { try { InetAddress address = InetAddress.getLocalHost(); System.out.println("本机IP地址:" + address.getHostAddress()); } catch (Exception e) { e.printStackTrace(); } } }
2. 使用NetworkInterface类
NetworkInterface类表示一个网络接口,它提供了获取网络接口信息的方法getNetworkInterfaces()。
import java.net.InetAddress; import java.net.NetworkInterface; import java.util.Enumeration; public class Main { public static void main(String[] args) { try { Enumerationinterfaces = NetworkInterface.getNetworkInterfaces(); while (interfaces.hasMoreElements()) { NetworkInterface networkInterface = interfaces.nextElement(); Enumeration addresses = networkInterface.getInetAddresses(); while (addresses.hasMoreElements()) { InetAddress address = addresses.nextElement(); if (!address.isLinkLocalAddress()) { System.out.println(networkInterface.getName() + " " + address.getHostAddress()); } } } } catch (Exception e) { e.printStackTrace(); } } }
三、如何获取远程主机IP地址
在Java中,获取远程主机IP地址同样有很多种方式。下面我们介绍一种常用的方式:使用Socket类。
Socket类提供了客户端访问服务器端的功能,其中getInetAddress()方法可以获取远程主机IP地址。
import java.net.InetAddress; import java.net.Socket; public class Main { public static void main(String[] args) { try { Socket socket = new Socket("www.baidu.com", 80); InetAddress address = socket.getInetAddress(); System.out.println("远程主机IP地址:" + address.getHostAddress()); socket.close(); } catch (Exception e) { e.printStackTrace(); } } }
四、总结
Java获取本机IP地址主要使用InetAddress类和NetworkInterface类,获取远程主机IP地址主要使用Socket类的getInetAddress()方法。