gpt4 book ai didi

java - 为什么不返回 IP 地址?

转载 作者:行者123 更新时间:2023-12-02 12:47:34 25 4
gpt4 key购买 nike

除了 ip 的 null 之外,我无法让它返回任何内容。我在格式化字符串数组内的操作时一定遗漏了一些东西,请帮忙!另外,是否有更好的用于 Java 命令行工作的 sdk? 更新供将来引用,这是一个 EC2 实例,并且执行 InetAddress.getLocalHost() 返回 null,因此我已恢复到命令行(AWS SDK 有点痛苦,只是为了钻取获取本地主机 IP)。

//要运行的命令:/sbin/ifconfig | awk 'NR==2{print$2}' | sed 's/addr://g'

String[] command = new String[] {"/sbin/ifconfig", "awk 'NR==2{print$2}'", "sed 's/addr://g'" };
String ip = runCommand(command);

public static String runCommand(String[] command) {
String ls_str;
Process ls_proc = null;
try {
ls_proc = Runtime.getRuntime().exec(command);
} catch (IOException e1) {
e1.printStackTrace();
}
DataInputStream ls_in = new DataInputStream(ls_proc.getInputStream());

try {
while ((ls_str = ls_in.readLine()) != null) {
return ls_str;
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}

最佳答案

  1. 当存在 perfectly easy way to enumerate network interfaces in Java 时,为什么要尝试使用 Runtime.exec()
  2. 您尝试执行多个命令,将一个命令的输出传送到另一个命令上。这项工作通常由 shell 完成。通过直接执行它,您无法获得该功能。您可以通过调用 shell 并将整个管道作为要执行的参数传递给它来解决这个问题。
  3. 阅读 When Runtime.exec() won't 。它总结了使用 Runtime.exec() 时可能陷入的所有主要陷阱(包括 #2 中提到的陷阱),并告诉您如何避免/解决它们。

关于java - 为什么不返回 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5081174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com