2012-02-07 117 views
0

我需要使用VB.Net通過一個IP地址範圍來遍歷一個優雅的方式,當輸入會來我的應用程序在此格式的字符串:迭代雖然IP的地址範圍

192.168.100.8-10 

這個範圍將包括3個地址:

192.168.100.8, 192.168.100.9, 192.168.100.10. 

我發現在C#中使用的IP地址類,我大概可以轉換爲VB的解決方案,但它似乎是太多的代碼,我需要做的。我肯定可以使用一堆字符串解析函數,但我希望有人已經有了一個簡單的方法來完成這個任務。

+1

這似乎是一個相對簡單的編程練習,只要抓住通過RE的最後一位,解析出「 - 」,以獲得最大/最小值,這樣做一個小錯誤檢查(x < y && both > 0和<255),你就完成了。 – KevinDTimm 2012-02-07 18:57:46

回答

0

這是一個解決方案。它甚至會使用泛型列表更容易...

Dim arrFinalIpList() As String 

    Dim strIP As String = "192.168.100.8-10" 

    Dim arrIP() As String = strIP.Split(".") 
    Dim strPrefix As String = arrIP(0) & "." & arrIP(1) & "." & arrIP(2) & "." 
    Dim arrMinAndMax() As String = arrIP(3).Split("-") 

    Dim intCursor As Integer = 0 

    For intCursor = CInt(arrMinAndMax(0)) To CInt(arrMinAndMax(1)) 

     If arrFinalIpList Is Nothing Then 

      ReDim arrFinalIpList(0) 
      arrFinalIpList(0) = strPrefix & intCursor.ToString() 

     Else 

      ReDim Preserve arrFinalIpList(arrFinalIpList.Count) 
      arrFinalIpList(arrFinalIpList.Count - 1) = strPrefix & intCursor.ToString() 

     End If 

    Next