Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
self.assertEqual(ivre.utils.get_addr_type('10.0.0.0'), 'Private')
self.assertIsNone(ivre.utils.get_addr_type('100.63.255.255'))
self.assertEqual(ivre.utils.get_addr_type('100.67.89.123'), 'CGN')
self.assertEqual(ivre.utils.get_addr_type('239.255.255.255'),
'Multicast')
self.assertEqual(ivre.utils.get_addr_type('240.0.0.0'), 'Reserved')
self.assertEqual(ivre.utils.get_addr_type('255.255.255.254'),
'Reserved')
self.assertEqual(ivre.utils.get_addr_type('255.255.255.255'),
'Broadcast')
# ip2int() / int2ip()
self.assertEqual(ivre.utils.ip2int("1.0.0.1"), (1 << 24) + 1)
self.assertEqual(ivre.utils.int2ip((1 << 24) + 1), "1.0.0.1")
self.assertEqual(ivre.utils.ip2int('::2:0:0:0:2'), (2 << 64) + 2)
self.assertEqual(ivre.utils.int2ip((2 << 64) + 2), '::2:0:0:0:2')
# Math utils
# http://stackoverflow.com/a/15285588/3223422
def is_prime(n):
if n == 2 or n == 3:
return True
if n < 2 or n % 2 == 0:
return False
if n < 9:
return True
if n % 3 == 0:
return False
r = int(n**0.5)
f = 5
while f <= r:
if n % f == 0:
flt=flt,
include_both_open=False)
else:
output = db.nmap.diff_categories(params.get("cat1"),
params.get("cat2"),
flt=flt)
count = 0
result = {}
if ipsasnumbers:
for res in output:
result.setdefault(res["addr"], []).append([res['port'],
res['value']])
count += 1
else:
for res in output:
result.setdefault(utils.int2ip(res["addr"]),
[]).append([res['port'], res['value']])
count += 1
result = viewitems(result)
if count >= config.WEB_WARN_DOTS_COUNT:
sys.stdout.write(
'if(confirm("You are about to ask your browser to display %d '
'dots, which is a lot and might slow down, freeze or crash '
'your browser. Do you want to continue?")) {\n' % count
)
if callback is not None:
sys.stdout.write("%s(\n" % callback)
sys.stdout.write(preamble)
# hack to avoid a trailing comma
result = iter(result)
try:
def list_ips_by_data(datafile, condition,
listall=True, listcidrs=False,
skip=0, maxnbr=None, multiple=False):
if ((not listall) or listcidrs) and ((skip != 0) or (maxnbr is not None)):
utils.LOGGER.warning('Skip and maxnbr parameters have no effect '
'when listall == False or listcidrs == True.')
if listcidrs:
listall = False
for start, stop in _get_by_data(datafile, condition):
if listall:
curaddrs = [utils.int2ip(addr) for addr in
range(start, stop + 1)]
if skip > 0:
skip -= len(curaddrs)
if skip <= 0:
curaddrs = curaddrs[skip:]
else:
curaddrs = []
if maxnbr is not None:
maxnbr -= len(curaddrs)
if maxnbr < 0:
curaddrs = curaddrs[:maxnbr]
for addr in curaddrs:
print(addr)
if maxnbr is not None and maxnbr <= 0:
return
elif listcidrs:
def get_ips_by_data(datafile, condition, skip=0, maxnbr=None):
res = []
for start, stop in _get_by_data(datafile, condition):
curaddrs = [utils.int2ip(addr) for addr in range(start, stop + 1)]
if skip > 0:
skip -= len(curaddrs)
if skip <= 0:
curaddrs = curaddrs[skip:]
else:
curaddrs = []
if maxnbr is not None:
maxnbr -= len(curaddrs)
if maxnbr < 0:
return res + curaddrs[:maxnbr]
if maxnbr == 0:
return res + curaddrs
res += curaddrs
return res
curaddrs = curaddrs[skip:]
else:
curaddrs = []
if maxnbr is not None:
maxnbr -= len(curaddrs)
if maxnbr < 0:
curaddrs = curaddrs[:maxnbr]
for addr in curaddrs:
print(addr)
if maxnbr is not None and maxnbr <= 0:
return
elif listcidrs:
for net in utils.range2nets((start, stop)):
print(net)
else:
print("%s - %s" % (utils.int2ip(start),
utils.int2ip(stop)))
outputproc = lambda x: {'count': x['count'],
'_id': utils.int2ip(x['_id'])}
elif field.startswith('hop') and field[3] in ':>':
def add_target(self, agentid, scanid, addr):
agent = self.get_agent(agentid)
try:
addr = int(addr)
addr = utils.int2ip(addr)
except (ValueError, TypeError, struct.error):
pass
with tempfile.NamedTemporaryFile(
prefix=str(scanid) + '-',
dir=self.get_local_path(agent, "input"),
delete=False,
mode='w',
) as fdesc:
fdesc.write("%s\n" % addr)
return True
return False
def _call_nmap_single(maincategory, options,
accept_target_status, target):
target = ivre.utils.int2ip(target)
outfile = 'scans/%s/%%s/%s.xml' % (maincategory, target.replace('.', '/'))
if STATUS_DONE_UP not in accept_target_status:
try:
os.stat(outfile % 'up')
return
except OSError:
pass
if STATUS_DONE_DOWN not in accept_target_status:
try:
os.stat(outfile % 'down')
return
except OSError:
pass
if STATUS_DONE_UNKNOWN not in accept_target_status:
try:
os.stat(outfile % 'unknown')