test_discover.py
3.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#!/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'eduardo'
import unittest
import os
import os.path
from ..session import Host, SnmpSession, NmapSession
from .. import Cocar
from ..model import network
from .. import utils
class TestDiscover(unittest.TestCase):
"""
Testa descoberta de ativos de rede utilizando snmp
"""
def setUp(self):
"""
Parâmetros iniciais
"""
self.activeip = '127.0.0.1'
self.inactiveip = '127.1.1.1'
self.localhost = '127.0.0.1'
cocar = Cocar()
self.data_dir = cocar.cocar_data_dir
local_network = utils.get_local_network()
self.network = network.Network(
network_ip=str(local_network.cidr),
name='Rede de teste'
)
def test_active(self):
"""
Teste que verifica se o ativo de rede está ativo
"""
session = SnmpSession(DestHost=self.activeip)
result = session.query()
print(result.query[0])
self.assertIsNotNone(result.query[0])
def test_inactive(self):
"""
Teste que identifica que um ativo de rede está inativo
"""
session = SnmpSession(DestHost=self.inactiveip)
result = session.query()
print(result.query[0])
self.assertIsNone(result.query[0])
def test_scan(self):
"""
Teste que realiza o scan em todas as informações do ativo
"""
session = NmapSession(self.localhost)
result = session.scan()
assert result
# Tenta achar o arquivo
outfile = self.data_dir + "/" + self.localhost + ".xml"
assert (os.path.isfile(outfile))
def test_scan_rede_full(self):
"""
Realiza busca em todos os IP's da rede e grava resultados num arquivo específico
"""
ip_list = self.network.ip_list()
i = 0
for ip in ip_list:
outfile = self.network.network_dir + "/" + str(ip) + ".xml"
#print(outfile)
session = NmapSession(ip, outfile=outfile)
session.scan()
i += 1
if i > 10:
break
# List all IP's from directory
onlyfiles = [ f for f in os.listdir(self.network.network_dir) if os.path.isfile(os.path.join(self.network.network_dir, f)) ]
# Funciona se encontrar pelo menos um arquivo
self.assertGreater(len(onlyfiles), 0)
# Apaga diretório
os.rmdir(self.network.network_dir)
def test_scan_rede(self):
"""
Realiza busca rápida em todos os IP's da rede e grava resultados num arquivo específico
"""
ip_list = self.network.ip_list()
i = 0
for ip in ip_list:
outfile = self.network.network_dir + "/" + str(ip) + ".xml"
#print(outfile)
session = NmapSession(ip, outfile=outfile, full=False)
session.scan()
i += 1
if i > 10:
break
# List all IP's from directory
onlyfiles = [ f for f in os.listdir(self.network.network_dir) if os.path.isfile(os.path.join(self.network.network_dir, f)) ]
# Funciona se encontrar pelo menos um arquivo
self.assertGreater(len(onlyfiles), 0)
# Apaga diretório
os.rmdir(self.network.network_dir)
def tearDown(self):
"""
Apaga dados inicias
"""
#os.rmdir(self.data_dir)