0
У меня есть строка диапазона IP ниже:Вычислить IP в IP диапазон
Dim IPRange as String = "192.168.0.1-192.168.0.100"
я использовал код для подсчета IP и добавить в Arraylist:
Dim beginIP() As Byte = IPAddress.Parse(IPRange.Split("-")(0)).GetAddressBytes
Array.Reverse(beginIP)
Dim endIP() As Byte = IPAddress.Parse(IPRange.Split("-")(1)).GetAddressBytes
Array.Reverse(endIP)
Dim IPbegin As UInt32 = BitConverter.ToUInt32(beginIP, 0)
Dim IPend As UInt32 = BitConverter.ToUInt32(endIP, 0)
Dim total as Integer = 0
Dim arr as New ArrayList()
For i As UInt32 = IPbegin To IPend
Dim IPbyte() As Byte = BitConverter.GetBytes(i)
Array.Reverse(IPbyte)
Dim IPCheck As String = New IPAddress(IPbyte).ToString
total += 1
arr.Add(IPCheck)
Next
Но у меня есть тысяча IPRange так с миллиарда IP , цикл делает мое приложение очень медленным. Как я могу ускорить этот код или другой способ рассчитать диапазон IP в этом случае?
Использовать многопоточность? –
Я запускал код и не имел проблемы с тысячами. Миллионы были произведены в течение секунды. Если есть проблема, вы не видите код с проблемой. – dbasnett
Не используйте 'ArrayList', он очень старый. Вместо этого используйте «Список (Of T)». –