Jeg skal have konverteret hver eneste linie til CIDR f.eks til '62.27.6.64/26' hvis vi tager udgangspunkt i linie 1. Det jeg skal gøre, er at læse fra textfilen (hvilket jeg kan) og derefter subnette (hvilket jeg ikke er god til). Håber der er nogen der kan hjælpe.
Jeg kunne slet ikke komme i tanke om en god måde at kode det på, men har er i hvert fald et bud der virker :) dog skal den første ip være netværks adressen i subnettet og den anden ip være broadcast adressen...som dine 3 eksempler også er...
Den udskriver /999 i det nye dokument, hvis det ikke er et gyldigt subnet...
Kopier og gem som filnavn.vbs - ændrer lokationen for readfile og writefile :)
Dim FSO, readfile, writefile Dim arrIP, arrFirstIP, arrSecondIP Dim subnet, err
Set FSO = CreateObject("Scripting.FileSystemObject") Set readfile = FSO.OpenTextFile("c:\ip\ip.txt", 1, false) Set writefile = FSO.CreateTextFile("c:\ip\ipny.txt", true)
Do While Not readfile.AtEndOfStream subnet = 0 arrIP = Split(readfile.ReadLine, " ") arrFirstIP = Split(arrIP(1), ".") arrSecondIP = Split(arrIP(2), ".")
If arrSecondIP(0) = arrFirstIP(0) Then subnet = subnet + 8 Elseif (arrSecondIP(0)-arrFirstIP(0)) = 1 Then subnet = subnet + 7 Elseif (arrSecondIP(0)-arrFirstIP(0)) = 3 Then subnet = subnet + 6 Elseif (arrSecondIP(0)-arrFirstIP(0)) = 7 Then subnet = subnet + 5 Elseif (arrSecondIP(0)-arrFirstIP(0)) = 15 Then subnet = subnet + 4 Elseif (arrSecondIP(0)-arrFirstIP(0)) = 31 Then subnet = subnet + 3 Elseif (arrSecondIP(0)-arrFirstIP(0)) = 63 Then subnet = subnet + 2 Elseif (arrSecondIP(0)-arrFirstIP(0)) = 127 Then subnet = subnet + 1 Elseif (arrSecondIP(0)-arrFirstIP(0)) = 255 Then subnet = subnet + 0 Else err = True End If
If arrSecondIP(1) = arrFirstIP(1) Then subnet = subnet + 8 Elseif (arrSecondIP(1)-arrFirstIP(1)) = 1 Then subnet = subnet + 7 Elseif (arrSecondIP(1)-arrFirstIP(1)) = 3 Then subnet = subnet + 6 Elseif (arrSecondIP(1)-arrFirstIP(1)) = 7 Then subnet = subnet + 5 Elseif (arrSecondIP(1)-arrFirstIP(1)) = 15 Then subnet = subnet + 4 Elseif (arrSecondIP(1)-arrFirstIP(1)) = 31 Then subnet = subnet + 3 Elseif (arrSecondIP(1)-arrFirstIP(1)) = 63 Then subnet = subnet + 2 Elseif (arrSecondIP(1)-arrFirstIP(1)) = 127 Then subnet = subnet + 1 Elseif (arrSecondIP(1)-arrFirstIP(1)) = 255 Then subnet = subnet + 0 Else err = True End If
If arrSecondIP(2) = arrFirstIP(2) Then subnet = subnet + 8 Elseif (arrSecondIP(2)-arrFirstIP(2)) = 1 Then subnet = subnet + 7 Elseif (arrSecondIP(2)-arrFirstIP(2)) = 3 Then subnet = subnet + 6 Elseif (arrSecondIP(2)-arrFirstIP(2)) = 7 Then subnet = subnet + 5 Elseif (arrSecondIP(2)-arrFirstIP(2)) = 15 Then subnet = subnet + 4 Elseif (arrSecondIP(2)-arrFirstIP(2)) = 31 Then subnet = subnet + 3 Elseif (arrSecondIP(2)-arrFirstIP(2)) = 63 Then subnet = subnet + 2 Elseif (arrSecondIP(2)-arrFirstIP(2)) = 127 Then subnet = subnet + 1 Elseif (arrSecondIP(2)-arrFirstIP(2)) = 255 Then subnet = subnet + 0 Else err = True End If
If arrSecondIP(3) = arrFirstIP(3) Then subnet = subnet + 8 Elseif (arrSecondIP(3)-arrFirstIP(3)) = 1 Then subnet = subnet + 7 Elseif (arrSecondIP(3)-arrFirstIP(3)) = 3 Then subnet = subnet + 6 Elseif (arrSecondIP(3)-arrFirstIP(3)) = 7 Then subnet = subnet + 5 Elseif (arrSecondIP(3)-arrFirstIP(3)) = 15 Then subnet = subnet + 4 Elseif (arrSecondIP(3)-arrFirstIP(3)) = 31 Then subnet = subnet + 3 Elseif (arrSecondIP(3)-arrFirstIP(3)) = 63 Then subnet = subnet + 2 Elseif (arrSecondIP(3)-arrFirstIP(3)) = 127 Then subnet = subnet + 1 Elseif (arrSecondIP(3)-arrFirstIP(3)) = 255 Then subnet = subnet + 0 Else err = True End If
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.