Skip to content

Commit 48249be

Browse files
committed
removed class name from objects id returned by get_dict
1 parent 92e726d commit 48249be

4 files changed

Lines changed: 58 additions & 31 deletions

File tree

libnmap/objects.py

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,18 @@ def get_service(self, portno, protocol='tcp'):
196196
raise Exception("Duplicate services found in NmapHost object")
197197
return plist.pop() if len(plist) else None
198198

199+
def get_service_byid(self, service_id):
200+
"""
201+
Returns a NmapService by providing its id.
202+
203+
The id of a nmap service is a python tupl made of (protocol, port)
204+
"""
205+
rval = None
206+
for _tmpservice in self._services:
207+
if _tmpservice.id == service_id:
208+
rval = _tmpservice
209+
return rval
210+
199211
def os_class_probabilities(self):
200212
"""
201213
Returns an array of possible OS class detected during
@@ -345,8 +357,8 @@ def get_dict(self):
345357
346358
:return dict
347359
"""
348-
d = dict([("%s.%s" % (s.__class__.__name__,
349-
str(s.id)), hash(s)) for s in self.services])
360+
d = dict([("%s" % (str(s.id)), hash(s)) for s in self.services])
361+
350362
d.update({'address': self.address, 'status': self.status,
351363
'hostnames': " ".join(self._hostnames)})
352364
return d
@@ -693,6 +705,22 @@ def hosts(self):
693705
"""
694706
return self._hosts
695707

708+
def get_host_byid(self, host_id):
709+
"""
710+
Gets a NmapHost object directly from the host array
711+
by looking it up by id.
712+
713+
:param ip_addr: ip address of the host to lookup
714+
:type ip_addr: string
715+
716+
:return: NmapHost
717+
"""
718+
rval = None
719+
for _rhost in self._hosts:
720+
if _rhost.address == host_id:
721+
rval = _rhost
722+
return rval
723+
696724
@property
697725
def endtime(self):
698726
"""
@@ -827,8 +855,7 @@ def get_dict(self):
827855
828856
:return: dict
829857
"""
830-
rdict = dict([("%s.%s" % (_host.__class__.__name__,
831-
str(_host.id)), hash(_host))
858+
rdict = dict([("%s" % (str(_host.id)), hash(_host))
832859
for _host in self.hosts])
833860
rdict.update({'hosts_up': self.hosts_up,
834861
'hosts_down': self.hosts_down,

libnmap/test/test_host.py

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -173,30 +173,30 @@ def test_diff_host(self):
173173
self.assertEqual(c1.removed(), set([]))
174174

175175
self.assertEqual(c1.unchanged(), set(['status',
176-
"NmapService.('tcp', 22)",
177-
"NmapService.('tcp', 111)",
178-
"NmapService.('tcp', 631)",
179-
"NmapService.('tcp', 3306)",
176+
"('tcp', 22)",
177+
"('tcp', 111)",
178+
"('tcp', 631)",
179+
"('tcp', 3306)",
180180
'address',
181-
"NmapService.('tcp', 25)"]))
181+
"('tcp', 25)"]))
182182

183183
self.assertEqual(c2.changed(), set(['status',
184-
'NmapService.(\'tcp\', 3306)']))
185-
self.assertEqual(c2.added(), set(['NmapService.(\'tcp\', 25)']))
186-
self.assertEqual(c2.removed(), set(['NmapService.(\'tcp\', 3307)']))
187-
self.assertEqual(c2.unchanged(), set(["NmapService.('tcp', 631)",
184+
'(\'tcp\', 3306)']))
185+
self.assertEqual(c2.added(), set(['(\'tcp\', 25)']))
186+
self.assertEqual(c2.removed(), set(['(\'tcp\', 3307)']))
187+
self.assertEqual(c2.unchanged(), set(["('tcp', 631)",
188188
'hostnames',
189-
"NmapService.('tcp', 22)",
190-
"NmapService.('tcp', 111)",
189+
"('tcp', 22)",
190+
"('tcp', 111)",
191191
'address']))
192192

193193
self.assertEqual(c3.changed(), set(['status', 'hostnames',
194-
"NmapService.('tcp', 3306)"]))
195-
self.assertEqual(c3.added(), set(["NmapService.('tcp', 25)"]))
196-
self.assertEqual(c3.removed(), set(["NmapService.('tcp', 3307)"]))
197-
self.assertEqual(c3.unchanged(), set(["NmapService.('tcp', 631)",
198-
"NmapService.('tcp', 22)",
199-
"NmapService.('tcp', 111)",
194+
"('tcp', 3306)"]))
195+
self.assertEqual(c3.added(), set(["('tcp', 25)"]))
196+
self.assertEqual(c3.removed(), set(["('tcp', 3307)"]))
197+
self.assertEqual(c3.unchanged(), set(["('tcp', 631)",
198+
"('tcp', 22)",
199+
"('tcp', 111)",
200200
'address']))
201201

202202

libnmap/test/test_report.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -214,13 +214,13 @@ def test_host_address_unchanged(self):
214214
self.assertEqual(h2.diff(h3).removed(), set([]))
215215
self.assertEqual(h2.diff(h3).unchanged(),
216216
set(['status',
217-
"NmapService.('tcp', 22)",
218-
"NmapService.('tcp', 111)",
219-
"NmapService.('tcp', 631)",
217+
"('tcp', 22)",
218+
"('tcp', 111)",
219+
"('tcp', 631)",
220220
'hostnames',
221-
"NmapService.('tcp', 3306)",
221+
"('tcp', 3306)",
222222
'address',
223-
"NmapService.('tcp', 25)"]))
223+
"('tcp', 25)"]))
224224

225225
if __name__ == '__main__':
226226
test_suite = ['test_report_constructor', 'test_get_ports',

libnmap/test/test_report_diff.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,22 +25,22 @@ def test_diff_host_list(self):
2525
d1 = r1.diff(r2)
2626
self.assertEqual(d1.changed(), set(['hosts_total', 'hosts_up']))
2727
self.assertEqual(d1.unchanged(), set(['hosts_down',
28-
'NmapHost.127.0.0.1']))
29-
self.assertEqual(d1.removed(), set(['NmapHost.74.207.244.221']))
28+
'127.0.0.1']))
29+
self.assertEqual(d1.removed(), set(['74.207.244.221']))
3030

3131
d2 = r1.diff(r3)
3232
self.assertEqual(d2.changed(), set([]))
3333
self.assertEqual(d2.unchanged(), set(['hosts_total',
3434
'hosts_down',
3535
'hosts_up',
36-
'NmapHost.127.0.0.1']))
36+
'127.0.0.1']))
3737
self.assertEqual(d2.added(), set([]))
3838
self.assertEqual(d2.removed(), set([]))
3939

4040
d3 = r2.diff(r4)
41-
self.assertEqual(d3.changed(), set(['NmapHost.127.0.0.1']))
41+
self.assertEqual(d3.changed(), set(['127.0.0.1']))
4242
self.assertEqual(d3.unchanged(), set(['hosts_total',
43-
'NmapHost.74.207.244.221',
43+
'74.207.244.221',
4444
'hosts_up',
4545
'hosts_down']))
4646
self.assertEqual(d3.added(), set([]))

0 commit comments

Comments
 (0)