Index: /nodes/getrange.py
===================================================================
--- /nodes/getrange.py	(revision 8226)
+++ /nodes/getrange.py	(revision 8227)
@@ -9,11 +9,16 @@
 size = 30
 if len(sys.argv) < 2:
-	print "Gebruik: python getrange.py <interlink|subnet> <size>"
-	print "\tdus voor een /28 interlink is het 'python getrange.py interlink 28'"
-	print "\ten voor een /25 subnet is het 'python getrange.py subnet 25'"
+	print "Gebruik: %s <interlink|subnet> <grootte> [aantal]" % sys.argv[0]
+	print "Voorbeelden:"
+	print "\tVoor drie /29 interlinks - '%s interlink 29 3'" % sys.argv[0]
+	print "\tVoor een (1) /24 subnet  - '%s subnet 24'" % sys.argv[0]
 	exit(1)
 
 interlink = sys.argv[1] == 'interlink'
 size = int(sys.argv[2])
+try:
+	aantal = int(sys.argv[3])
+except (KeyError,IndexError):
+    aantal = 1
 numaddrs = 1 << (32 - size)
 
@@ -59,24 +64,37 @@
 				print "[FOUT] in bestand '%s' regel '%i': %s" % (fname, lineNr, l)
 
-i = 0xffffffffL
+# Fetching smallest in use IP 
+# XXX: Currently not used for anything
+i = parseaddr("255.255.255.255")
 for k in bezet.keys():
 	if k < i:
 		i = k
 
-i = 0xac100300
-if not interlink:
-	i = 0xac110000
-while 1:
-	while bezet.has_key(i):
-		i = i + numaddrs
-	okay = 1
-	for j in range(numaddrs):
-		if bezet.has_key(i + j):
+# Interlinks are living in special ranges usually
+if interlink:
+	i = parseaddr("172.16.3.0")
+else:
+	i = parseaddr("172.17.0.0")
+
+for n in xrange(aantal):
+	okay = False
+	while not okay: 
+		while bezet.has_key(i):
 			i = i + numaddrs
-			okay = 0
-			break
-	if okay:
-		break
+		
+		# Assume Ok, till we find a already used IP
+		okay = True
+		for j in range(numaddrs):
+			if bezet.has_key(i + j):
+				i = i + numaddrs
+				okay = False
+				break
 
-print "%s/%d:" % (showaddr(i), size),
-print " en ".join([showaddr(i) for i in range(i + 1, i + numaddrs - 1)])
+	print "%s/%d:" % (showaddr(i), size),
+	if size > 28:
+		print " en ".join([showaddr(i) for i in range(i + 1, i + numaddrs - 1)])
+	else:
+		print " en ".join([showaddr(i) for i in range(i + 1, i + 4)]),
+		print "...",
+		print " en ".join([showaddr(i) for i in range(i + numaddrs - 7, i + numaddrs - 4)])
+	bezet[i] = 1
