使用 bufferreader 在 java 代码中读取 --traceroute 命令时搜索特定单词
Search for a specific word when reading a --traceroute command in java code using bufferreader
我正在尝试从 traceroute 输出中搜索单词 "hop"
,但不知何故它没有在控制台上显示该行。请让我知道哪里出错了。
这是我的代码:
import java.io.*;
public class TestExec {
public static void main(String[] args) {
try {
String[] cmdarray = { "nmap", "--traceroute", "nmap.org" };
Process p = Runtime.getRuntime().exec(cmdarray);
BufferedReader in = new BufferedReader(new InputStreamReader(
p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
if (line.contains("hop")) {
System.out.println(line);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
几件事:
- 你运行在Linux中使用这个吗?如果你是,你必须运行
nmap
as root
。你这样做了吗?
- 我不太确定您要寻找的是什么。在我的
nmap --traceroute nmap.org
的 运行 中,没有包含小写单词 "hop"
的行。因此,即使您 运行 以 root 身份运行此程序,您也可能不会得到太多。 I'm fairly certain it doesn't print the word "hop"
in lowercase on Windows, either.
我正在尝试从 traceroute 输出中搜索单词 "hop"
,但不知何故它没有在控制台上显示该行。请让我知道哪里出错了。
这是我的代码:
import java.io.*;
public class TestExec {
public static void main(String[] args) {
try {
String[] cmdarray = { "nmap", "--traceroute", "nmap.org" };
Process p = Runtime.getRuntime().exec(cmdarray);
BufferedReader in = new BufferedReader(new InputStreamReader(
p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
if (line.contains("hop")) {
System.out.println(line);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
几件事:
- 你运行在Linux中使用这个吗?如果你是,你必须运行
nmap
asroot
。你这样做了吗? - 我不太确定您要寻找的是什么。在我的
nmap --traceroute nmap.org
的 运行 中,没有包含小写单词"hop"
的行。因此,即使您 运行 以 root 身份运行此程序,您也可能不会得到太多。 I'm fairly certain it doesn't print the word"hop"
in lowercase on Windows, either.