如何从linux命令获取java中的字符串数组?
我是Java新手,我使用runtime exec在linux中使用Java运行命令。我希望找到一个命令,让所有网络适配器找到每个适配器上的ip,并将它们全部带到阵列中 我该怎么做 谢谢 您显然可以运行和解析输出,但为什么要这样做呢 只需使用,如示例所示:如何从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
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);
}
}
}
}