=nmap IP Range Tests= Copyright (c) 2008-2012, David P. D. Moss. All rights reserved. {{{ >>> from netaddr import * }}} nmap IP range validation. {{{ >>> valid_nmap_range('192.0.2.1') True >>> valid_nmap_range('192.0.2.0-31') True >>> valid_nmap_range('192.0.2-3.1-254') True >>> valid_nmap_range('0-255.0-255.0-255.0-255') True >>> valid_nmap_range('192.168.3-5,7.1') True >>> valid_nmap_range('192.168.3-5,7,10-12,13,14.1') True >>> valid_nmap_range(1) False >>> valid_nmap_range('1') False >>> valid_nmap_range([]) False >>> valid_nmap_range({}) False >>> valid_nmap_range('::') False >>> valid_nmap_range('255.255.255.256') False >>> valid_nmap_range('0-255.0-255.0-255.0-256') False >>> valid_nmap_range('0-255.0-255.0-255.-1-0') False >>> valid_nmap_range('0-255.0-255.0-255.256-0') False >>> valid_nmap_range('0-255.0-255.0-255.255-0') False >>> valid_nmap_range('a.b.c.d-e') False >>> valid_nmap_range('255.255.255.a-b') False }}} nmap IP range iteration. {{{ >>> list(iter_nmap_range('192.0.2.1')) [IPAddress('192.0.2.1')] >>> ip_list = list(iter_nmap_range('192.0.2.0-31')) >>> len(ip_list) 32 >>> ip_list [IPAddress('192.0.2.0'), IPAddress('192.0.2.1'), IPAddress('192.0.2.2'), IPAddress('192.0.2.3'), IPAddress('192.0.2.4'), IPAddress('192.0.2.5'), IPAddress('192.0.2.6'), IPAddress('192.0.2.7'), IPAddress('192.0.2.8'), IPAddress('192.0.2.9'), IPAddress('192.0.2.10'), IPAddress('192.0.2.11'), IPAddress('192.0.2.12'), IPAddress('192.0.2.13'), IPAddress('192.0.2.14'), IPAddress('192.0.2.15'), IPAddress('192.0.2.16'), IPAddress('192.0.2.17'), IPAddress('192.0.2.18'), IPAddress('192.0.2.19'), IPAddress('192.0.2.20'), IPAddress('192.0.2.21'), IPAddress('192.0.2.22'), IPAddress('192.0.2.23'), IPAddress('192.0.2.24'), IPAddress('192.0.2.25'), IPAddress('192.0.2.26'), IPAddress('192.0.2.27'), IPAddress('192.0.2.28'), IPAddress('192.0.2.29'), IPAddress('192.0.2.30'), IPAddress('192.0.2.31')] >>> ip_list = list(iter_nmap_range('192.0.2-3.1-7')) >>> len(ip_list) 14 >>> list(iter_nmap_range('192.0.2.1-3,5,7-9')) [IPAddress('192.0.2.1'), IPAddress('192.0.2.2'), IPAddress('192.0.2.3'), IPAddress('192.0.2.5'), IPAddress('192.0.2.7'), IPAddress('192.0.2.8'), IPAddress('192.0.2.9')] >>> for ip in ip_list: ... print(ip) ... 192.0.2.1 192.0.2.2 192.0.2.3 192.0.2.4 192.0.2.5 192.0.2.6 192.0.2.7 192.0.3.1 192.0.3.2 192.0.3.3 192.0.3.4 192.0.3.5 192.0.3.6 192.0.3.7 >>> list(iter_nmap_range('::')) Traceback (most recent call last): ... netaddr.core.AddrFormatError: invalid nmap range: :: }}}