era added the comment: @xiang.zhang thanks for the quick reply.
I find this behavior surprising. If I process a list of addresses, like ips = ( '10.9.8.7/32' '10.11.12.8/28' ) for test in ['10.9.8.7', '10.11.12.10']: if test in [str(y) for x in ips for y in ipaddress.ip_network(x).hosts()]: print('{0} found'.format(test)) else: print('{0} not found'.format(test)) I would expect both addresses to print "found", but that's not how the current implementation works. I agree that the /28 should not include the gateway and broadcast addresses, but I would not expect the explicitly listed /32 address to completely disappear from the output. Are my expectations incorrect? For code like this, what should I use instead, if not hosts()? ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue28577> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com