我正在尝试获取在我的网络上连接的所有计算机的列表,我能够这样做。
但是我需要获得我用String格式存储的Ip地址的Hostanme以及其他一些数据,如mac地址。
我尝试过使用json但是无法从String中获取Ip列表。我只是从String列出了ip,所以使用Foreach我可以找到该特定的主机名。
以下是代码:
<?xml version="1.0" encoding="utf-8"?>
<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/hsvClosetFilter"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_below="@+id/rlt"
android:layout_marginTop="5dp"
tools:context="com.example.rohantaneja.horizontalscrollview.MainActivity">
<LinearLayout
android:id="@+id/viewCategoryNames"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal" />
</HorizontalScrollView>
这是输出:
答案 0 :(得分:1)
您可以使用正则表达式使用Regex.Matches
提取IPvar matches1 = Regex.Matches(output, @"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b");
作为您可能不需要的第一个IP,您可以跳过它。
for(int i=1; i < matches1.Count; i++)
Console.WriteLine("IPs " + i + "\t" + matches1[i].Value);
答案 1 :(得分:0)
通常会使用正则表达式来解析此类文本。或者,您可以使用CSV库来解析类似的格式,或者如果这只是基本String.Split
的一次性案例。
var byLine = output.Split('\n') // split into lines
.Skip(1); // skip header
var ips = byLine.Select(s => s.Split(' ')[0]);
注意: