Linux上Java程序获取本地IP

在Linux操作系统中,Java程序可以通过一些方法获取本地IP地址。本文将介绍两种常见的方法:通过Java代码获取IP地址和通过Linux命令获取IP地址。

通过Java代码获取IP地址

在Java中,可以使用InetAddress类来获取本地IP地址。下面是一个示例代码:

import java.net.InetAddress;
import java.net.UnknownHostException;

public class GetLocalIP {
    public static void main(String[] args) {
        try {
            InetAddress inetAddress = InetAddress.getLocalHost();
            String ip = inetAddress.getHostAddress();
            System.out.println("Local IP: " + ip);
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }
}

通过InetAddress.getLocalHost()方法可以获取本地主机,然后通过getHostAddress()方法获取IP地址。

通过Linux命令获取IP地址

除了通过Java代码获取IP地址,还可以通过Linux命令来获取IP地址。常用的命令包括ifconfigip。下面是使用ifconfig命令获取IP地址的示例代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class GetLocalIP {
    public static void main(String[] args) {
        try {
            Process process = Runtime.getRuntime().exec("ifconfig");
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            
            String line;
            while ((line = reader.readLine()) != null) {
                if (line.contains("inet")) {
                    String[] tokens = line.trim().split("\\s+");
                    System.out.println("Local IP: " + tokens[1]);
                }
            }
            
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上述代码通过执行ifconfig命令,并解析输出结果来获取IP地址。

状态图

下面是Java程序获取本地IP地址的状态图:

stateDiagram
    [*] --> Start
    Start --> JavaCode
    JavaCode --> LinuxCommand
    LinuxCommand --> End
    End --> [*]

总结

本文介绍了在Linux上使用Java程序获取本地IP地址的两种常见方法:通过Java代码获取IP地址和通过Linux命令获取IP地址。通过Java代码可以直接调用Java API来获取IP地址,而通过Linux命令则利用系统自带的工具来获取IP地址。根据实际需求,选择合适的方法来获取本地IP地址。