C# 如何在c语言中计算IP地址字符串

C# 如何在c语言中计算IP地址字符串,c#,split,ip-address,C#,Split,Ip Address,现在我有了一系列格式为\10.4.1.2\Camera\u save的地址。它们总共18个,唯一不同的数字是IP地址中的第三个数字,例如:10.4.2.2、10.4.3.2…..10.4.18.2 我需要做的是从地址中提取第三个数字,知道吗? 另外,地址在一个包含18个元素的数组中。我有另一个数组trams[]用于存储提取的18个数字 我试着用string.replace,比如 directory[i].Fullname.Replace('\\10.4.','').Replace('

现在我有了一系列格式为\10.4.1.2\Camera\u save的地址。它们总共18个,唯一不同的数字是IP地址中的第三个数字,例如:10.4.2.2、10.4.3.2…..10.4.18.2 我需要做的是从地址中提取第三个数字,知道吗? 另外,地址在一个包含18个元素的数组中。我有另一个数组trams[]用于存储提取的18个数字

我试着用string.replace,比如

      directory[i].Fullname.Replace('\\10.4.','').Replace('.2\Camera_save','');
错误表示Replace的参数太长,null字符串不正确。因为我是从另一篇文章中得到这个方法的,那里的替换就是这样使用的。有什么解释吗?

您可以按以下方式进行拆分:


使用Uri解析字符串。Parse,选择第一个段,然后像IP地址一样使用IPAddress解析它。Parse,然后使用.GetAddressBytes将它们转换为4字节数组,然后选择第三个字节。

按分隔符“\”拆分,然后按“.”拆分第二个匹配。也许您已经尝试过什么了?您的具体问题是什么?意外的结果或某些错误?此网站不是为完成您的任务或做您的家庭作业而设计的。向我们展示你们的努力,你们试图完成什么任务?听起来像是X-Y问题。好了,伙计们,安迪展示了一个完美的解决方案!就这样!非常感谢:有点复杂。但无论如何,谢谢你的回复,也许这对未来会有帮助@这是唯一正确的方法。当然,你可以用string.Split甚至索引器来选择你的IP段,但这是一个非常糟糕的练习,除非这是你的家庭作业。
String[] ip = { @"\10.4.1.2\Camera_save", @"\10.4.5.2\Camera_save" };
String[] result = ip.Select(x => x.Split('.')[2]).ToArray();
String[] ip = { @"\10.4.1.2\Camera_save", @"\10.4.5.2\Camera_save" };
String[] result = ip.Select(x => x.Split('.')[2]).ToArray();