Imports System.IO
Imports System
Public Class Form1
Dim import1 As String = File.ReadAllText(Environment.ExpandEnvironmentVariables("%homepath%\Desktop\lists\ips.txt"))
Dim i As String = 0
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim theout As String = Nothing
Dim ary() As String = import1.Split("~"c)
Dim total As String = Nothing
'Split into Array all Names/Addresses by "~"
For Each ar As String In ary
'Split Names of Addresses from the IP Range
Dim arsplit() As String = ar.Split(":"c)
'Determine isrange or issingle
If arsplit(1).ToString.Contains("-") Then
'Split ranges
Dim a() As String = arsplit(1).ToString.Split("-"c)
'Break octets
Dim segments1() As String = a(0).ToString.Replace(" ", "").Split("."c)
Dim segments2() As String = a(1).ToString.Replace(" ", "").Split("."c)
'If first oct greater range
If segments2(0) > segments1(0) Then
Dim h As String = segments1(0)
Dim q As String = segments1(1)
Dim p As String = segments1(2)
Dim t As String = segments1(3)
'Attempt to Make all range between two IP addresses
Do Until h = segments2(0) And q = segments2(1) And p = segments2(2) _
And t = segments2(3)
If q = "256" Then
'If 2nd oct hits 256 then 1st + 1, 2nd = 0
q = "0"
h = h + 1
'MsgBox(h & "." & q & "." & p & "." & t, MsgBoxStyle.Information, i)
End If
If p = "256" Then
'If 3rd oct hits 256 then 2nd + 1, 3rd = 0
q = q + 1
p = "0"
End If
If t = "256" Then
'If 4th oct hits 256 then 3rd + 1, 4th = 0
p = p + 1
t = "0"
End If
Dim temp As String = "127.0.01" & vbTab & h & "." & q & "." & p & "." _
& t & Environment.NewLine
'Write out IP to a cumulative string
total &= temp
'+1 IP to last oct
t = t + 1
'Was using this trying to determine how to stop getting a 256 in last oct.
'If h = segments2(0) = True Then
' Exit Do
'End If
Loop
'If first oct greater range
ElseIf segments2(1) > segments1(1) Then
Dim q As String = segments1(1)
Dim p As String = segments1(2)
Dim t As String = segments1(3)
'MsgBox(segments1(0) & "." & q & "." & p & "." & t, MsgBoxStyle.Information, i)
Do Until q = segments2(1) And p = segments2(2) And t = segments2(3)
If p = "256" Then
q = q + 1
p = "0"
End If
If t = "256" Then
p = p + 1
t = "0"
'MsgBox(segments1(0) & "." & q & "." & p & "." & t, _
'MsgBoxStyle.Information, i)
End If
Dim temp As String = "127.0.0.1" & vbTab & segments1(0) & "." & q & "." & p _
& "." & t & Environment.NewLine
total &= temp
t = t + 1
If q = segments2(1) And p = segments2(2) And t = segments2(3) = True Then
Exit Do
End If
Loop
ElseIf segments2(2) > segments1(2) Then
Dim p As String = segments1(2)
Dim t As String = segments1(3)
'MsgBox(segments1(0) & "." & segments1(1) & "." & p & "." & t, _
'MsgBoxStyle.Information, arsplit(1))
Do Until p = segments2(2) And t = segments2(3)
If t = "256" Then
p = p + 1
t = "0"
End If
total &= "127.0.0.1" & vbTab & segments1(0) & "." & segments1(1) & "." & _
p & "." & t & Environment.NewLine
t = t + 1
If p = segments2(2) And t = segments2(3) = True Then
Exit Do
End If
Loop
ElseIf segments2(3) > segments1(3) Then
Dim lastt As String = segments1(3)
Do Until lastt = segments2(3)
total &= "127.0.0.1" & vbTab & segments1(0) & "." & segments1(1) & "." & _
segments1(2) & "." & lastt & Environment.NewLine
lastt = lastt + 1
If lastt > segments2(3) = True Then
Exit Do
End If
Loop
End If
Else
total &= "127.0.0.1" & vbTab & arsplit(1).ToString & Environment.NewLine
End If
i = i + 1
Next
'Write out a text file
File.WriteAllText(Environment.ExpandEnvironmentVariables("%homepath%\Desktop\lists\" & _
"output.txt"), total)
End Sub
End Class