如何从linux命令获取java中的字符串数组?

如何从linux命令获取java中的字符串数组?,java,arrays,linux,ip,Java,Arrays,Linux,Ip,我是Java新手,我使用runtime exec在linux中使用Java运行命令。我希望找到一个命令,让所有网络适配器找到每个适配器上的ip,并将它们全部带到阵列中 我该怎么做 谢谢 您显然可以运行和解析输出,但为什么要这样做呢 只需使用,如示例所示: public static void main(String args[]) throws SocketException { Enumeration<NetworkInterface> nets = NetworkInte

我是Java新手,我使用runtime exec在linux中使用Java运行命令。我希望找到一个命令,让所有网络适配器找到每个适配器上的ip,并将它们全部带到阵列中

我该怎么做

谢谢

您显然可以运行和解析输出,但为什么要这样做呢

只需使用,如示例所示:

public static void main(String args[]) throws SocketException {
    Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
    for (NetworkInterface netint : Collections.list(nets))
        displayInterfaceInformation(netint);
}

static void displayInterfaceInformation(NetworkInterface netint) throws SocketException {
    out.printf("Display name: %s\n", netint.getDisplayName());
    out.printf("Name: %s\n", netint.getName());
    Enumeration<InetAddress> inetAddresses = netint.getInetAddresses();
    for (InetAddress inetAddress : Collections.list(inetAddresses)) {
        out.printf("InetAddress: %s\n", inetAddress);
    }
    out.printf("\n");
}
通过将示例更改为以下内容,您可以轻松筛选启动的非虚拟接口:

for (NetworkInterface netint : Collections.list(nets)) {
    if (!netint.isVirtual() && netint.isUp()) {
        displayInterfaceInformation(netint);
    }
}

TL;博士:使用JDK,卢克 我通过以下方法解决了这个问题:

for (NetworkInterface ni : Collections.list(NetworkInterface.getNetworkInterfaces())) {
                    for (InetAddress address : Collections.list(ni.getInetAddresses())) {
                        if (address instanceof Inet4Address) {
                            String ipadr = address.toString().replaceAll("/", "");
                            ipadr = ipadr.replaceAll("127.0.0.1", "");
                            if (!ipadr.equalsIgnoreCase("")) {
                                ipss.add(ipadr);
                            }
                        }
                    }
                }
这还不错,但有许多实用方法可以检查本地链接。您的方法将在Ubuntu上失败,例如,因为
127.0.1.1
也被用作本地链接。
for (NetworkInterface ni : Collections.list(NetworkInterface.getNetworkInterfaces())) {
                    for (InetAddress address : Collections.list(ni.getInetAddresses())) {
                        if (address instanceof Inet4Address) {
                            String ipadr = address.toString().replaceAll("/", "");
                            ipadr = ipadr.replaceAll("127.0.0.1", "");
                            if (!ipadr.equalsIgnoreCase("")) {
                                ipss.add(ipadr);
                            }
                        }
                    }
                }