Generating and printing a range of ip addresses

Peter Otten __peter__ at web.de
Sat Feb 14 10:24:35 CET 2004


Stephen Briley wrote:

> Hi all,
> 
> I would like to write a python script that takes input
> of 2 ip address, one a start address and the other the
> end address and prints a list of all ip address in
> between  in dotted-decimal format.  I've attempted to
> use the ipv4 module
> (http://pynms.sourceforge.net/ipv4.html) ,but I am
> unable to get past this error  "AttributeError: 'str'
> object has no attribute '_address".
> 
> Can any suggest a solution to this problem? Is there a
> better way than using the ipv4 module?
> 
> Thanks,
> 
> Steve
> 
>>>> from ipv4 import *
>>>> ip = IPv4('10.0.0.1')
>>>> startadd = ip.nexthost()
>>>> endadd = ('10.0.3.0')

I don't known pynms, but it seems the above shoud be 

endadd = IPv4('10.0.3.0')

instead.

>>>> print startadd
> 10.0.0.2
>>>> print endadd
> 10.0.3.0
> 
>>>> while startadd != endadd:
> ...   startadd = ip.nexthost()
> ...   print startadd
> ...
> Traceback (most recent call last):
>   File "<interactive input>", line 1, in ?
>   File "C:\Python23\lib\ipv4.py", line 250, in __cmp__
>     return cmp(self._address, other._address)
> AttributeError: 'str' object has no attribute '_address'

Reading the traceback carefully should give the right clue. A str object
occurs where you would expect an IPv4 instance.

Peter



More information about the Python-list mailing list