获取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

以上类图