迭代IP地址范围

时间:2012-02-07 18:50:00

标签: vb.net ip-address

当输入以这种格式作为字符串来到我的应用程序时,我需要一种优雅的方式使用VB.Net迭代一系列IP地址:

192.168.100.8-10

此范围包括3个地址:

192.168.100.8, 192.168.100.9, 192.168.100.10.

我在C#中找到了一个使用IP地址类的解决方案,我可以将其转换为VB,但它似乎是我需要做的代码太多了。我当然可以使用一堆字符串解析函数,但我希望有人已经有一个简单的方法来做这个。

1 个答案:

答案 0 :(得分: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