[Tutor] print IP address range to stdout

MK lopoff at gmx.net
Tue Dec 22 10:53:19 CET 2009


Hi there,

i have some logical problem. I dont get it done to write my for loops in
that way that the ip address range which is given as arguments are
correct processed. Meaning that only the ips are printed which the
user defines as argument. I tried to make an if statement to stop
at the end_adress but it didnt work as it will stop at the end range
every time. 

Here is my program so far:

---------------------------------------------------------
sai = start_adress.split(".")
eai = end_adress.split(".")

# Prüfen auf gültige IP
if eai < sai:
	help_here()

#print sai,eai

sa1=int(sai[0])
sa2=int(sai[1])
sa3=int(sai[2])
sa4=int(sai[3])
ea1=int(eai[0])
ea2=int(eai[1])
ea3=int(eai[2])
ea4=int(eai[3])

#print sa1,sa2,sa3,sa4
#print ea1,ea2,ea3,ea4

e1=ea1+1 # muß um 1 erhöht werden da sonst nur bis ea1-1
e2=ea2+1
e3=ea3+1
e4=ea4+1

ip=""
for i in range(sa4,255):
	ip=sai[0]+"."+sai[1]+"."+sai[2]+"."+str(i)
	print ip
print "-------4--------"	
					
for i in range(sa3+1,255):
	for i2 in range(1,255):
		ip=sai[0]+"."+sai[1]+"."+str(i)+"."+str(i2)
		print ip
print "-------3--------"		

sa3=sa3+1
for i in range(sa2+1,e2):
	for i2 in range(1,255):
		for i3 in range(1,255):
			ip=sai[0]+"."+str(i)+"."+str(i2)+"."+str(i3)
			print ip
print "-------2--------"			
			
for i in range(sa1+1,e1):
	for i2 in range(1,255):
		for i3 in range(1,255):
			for i4 in range(1,255):
				ip=str(i)+"."+str(i2)+"."+str(i3)+"."+str(i4)
				print ip		
print "-------1--------"

---------------------------------------------------------

The start_adress and end_adress are the ip-range.

For example:
printdomains.py -s 192.168.178.0 -e 193.170.180.4

This should make all ips and stop at the end_adress.

Maybe you can help.

Thank you.

Mac



More information about the Tutor mailing list