获取IP地址的流程
获取IP地址主要分为两个步骤:获取本地IP地址和获取公网IP地址。下面是获取IP地址的流程图:
erDiagram
开发者 --> 本地IP地址: 1. 获取本地IP地址
开发者 --> 公网IP地址: 2. 获取公网IP地址
获取本地IP地址
获取本地IP地址的过程相对简单,主要是通过Java提供的网络编程API来实现。下面是具体的步骤和代码示例:
| 步骤 | 代码示例 | 说明 |
|---|---|---|
| 1 | import java.net.InetAddress; |
导入InetAddress类 |
| 2 | InetAddress localIP = InetAddress.getLocalHost(); |
使用getLocalHost()方法获取本地IP地址 |
| 3 | String localIPAddress = localIP.getHostAddress(); |
使用getHostAddress()方法获取本地IP地址的字符串表示形式 |
| 4 | System.out.println("本地IP地址:" + localIPAddress); |
打印本地IP地址 |
下面是具体的Java代码示例:
import java.net.InetAddress;
public class GetLocalIPAddress {
public static void main(String[] args) {
try {
InetAddress localIP = InetAddress.getLocalHost();
String localIPAddress = localIP.getHostAddress();
System.out.println("本地IP地址:" + localIPAddress);
} catch (Exception e) {
e.printStackTrace();
}
}
}
以上代码通过InetAddress.getLocalHost()方法获取本地IP地址对象,然后通过getHostAddress()方法获取本地IP地址的字符串表示形式,并打印出来。使用这段代码可以获取到当前机器的本地IP地址。
获取公网IP地址
获取公网IP地址的过程相对复杂,需要通过访问外部网络资源来获取。下面是具体的步骤和代码示例:
| 步骤 | 代码示例 | 说明 |
|---|---|---|
| 1 | import java.net.URL; |
导入URL类 |
| 2 | import java.io.BufferedReader; |
导入BufferedReader类 |
| 3 | import java.io.InputStreamReader; |
导入InputStreamReader类 |
| 4 | `URL whatIsMyIP = new URL(" | 创建一个URL对象,用于访问获取IP地址的API |
| 5 | BufferedReader in = new BufferedReader(new InputStreamReader(whatIsMyIP.openStream())); |
使用URL对象的openStream()方法获取输入流,并通过BufferedReader包装 |
| 6 | String publicIPAddress = in.readLine(); |
读取输入流中的内容,即公网IP地址的字符串表示形式 |
| 7 | System.out.println("公网IP地址:" + publicIPAddress); |
打印公网IP地址 |
下面是具体的Java代码示例:
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class GetPublicIPAddress {
public static void main(String[] args) {
try {
URL whatIsMyIP = new URL("
BufferedReader in = new BufferedReader(new InputStreamReader(whatIsMyIP.openStream()));
String publicIPAddress = in.readLine();
System.out.println("公网IP地址:" + publicIPAddress);
} catch (Exception e) {
e.printStackTrace();
}
}
}
以上代码通过创建一个URL对象,并指定访问获取IP地址的API(这里使用了一个公开的IP地址查询接口),然后使用输入流读取返回的内容,即公网IP地址的字符串表示形式,并打印出来。使用这段代码可以获取到当前机器的公网IP地址。
类图
下面是获取IP地址的相关类的类图:
classDiagram
class 开发者 {
- String name
+ void teach(小白)
}
class 小白 {
- String name
- String localIPAddress
- String publicIPAddress
+ void setLocalIPAddress(String)
+ void setPublicIPAddress(String)
}
class InetAddress {
+ InetAddress getLocalHost()
+ String getHostAddress()
}
class URL {
+ URL(String)
+ InputStream openStream()
}
class BufferedReader {
+ BufferedReader(InputStreamReader)
+ String readLine()
}
class InputStreamReader {
+ InputStreamReader(InputStream)
}
开发者 --> 小白
小白 --> InetAddress
InetAddress --> URL
URL --> BufferedReader
BufferedReader --> InputStreamReader
以上类图
















