gpt4 book ai didi

java - 如何从Java中的单个长字符串中提取IP地址

转载 作者:行者123 更新时间:2023-12-01 14:31:45 25 4
gpt4 key购买 nike

我正在编写一个 Android 应用程序来执行跟踪路由命令。

现在,当traceroute执行时,它会将控制台输出放入一个非常长的单个字符串中。这是通过以下代码完成的:

    public void runAsRoot(String[] cmds) throws Exception {


Process p = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(p.getOutputStream());
InputStream is = p.getInputStream();
for (String tmpCmd : cmds) {
os.writeBytes(tmpCmd+"\n");
int readed = 0;
byte[] buff = new byte[4096];

// if cmd requires an output
// due to the blocking behaviour of read(...)
boolean cmdRequiresAnOutput = true;
if (cmdRequiresAnOutput) {
while( is.available() <= 0) {
try { Thread.sleep(10000); } catch(Exception ex) {} //timeout.. gotta watch this carefully.
}

while( is.available() > 0) {

readed = is.read(buff);
if ( readed <= 0 ) break;
String seg = new String(buff,0,readed);
System.out.println("#> "+seg);
ListofIPs = seg;


}
}
}
os.writeBytes("exit\n");
os.flush();
}

该字符串的输出如下所示: logcat output after printing the string

我想要做的是获取此输出并仅提取 IP 地址并将它们按顺序放入数组中。这就是我什至不知道从哪里开始的地方。我正在考虑某种类型的字符串操作,但不知道从哪里开始。

如果有人有任何想法或指示,我将不胜感激。

提前致谢。

最佳答案

我会尝试删除第一行,然后尝试使用 String split通过空格。这样你就知道 IP 位于 1,5,9,.. (1+4*n_iteration) 或者你可以用“ms”分割,然后再次用空格分割。

关于java - 如何从Java中的单个长字符串中提取IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16826348/

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