Итерация по диапазону IP-адресов

Мне нужен элегантный способ использования 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 ответ

Решение

Вот решение. Было бы еще проще использовать общие списки...

    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
Другие вопросы по тегам