使用python libnmap模块,我有以下python代码:
def DiffScan(Old, New):
Added = Old.diff(New).added()
for i in Added:
anIP = i.split('::')[1]
print "IP for lookup is " + anIP + " of " + str(type(anIP))
anewhost = New.get_host_byid(anIP)
pprint.pprint(anewhost)
当我调用这个函数时,我得到输出:
IP for lookup is X.X.X.X of <type 'str'>
None
IP for lookup is Y.Y.Y.Y of <type 'str'>
None
我的期望是,我得到的不是“无”,而是:
IP for lookup is Z.Z.Z.Z of <type 'str'>
NmapHost: [Z.Z.Z.Z () - up]
我不确定为什么对.get_host_byid()
的调用返回None而不是NMapHost
对象。也许我的anIP
字符串有问题,但我找不到错误
热释光;我错误地调用了diff函数
更长的答案
libnmap diff函数没有问题。上面问题中的原始代码有一个逻辑错误,错误地调用了diff函数。它返回“None”,因为查询的主机集不包含请求的主机,这是预期的行为。正确的呼叫应该是:
换句话说,在函数调用中交换两个变量的位置。然后是呼叫
然后将正常工作。将此扩展到其他diff函数,删除的主机的代码应为:
然后使用
更改主机的代码应为
然后使用
未更改主机的代码应为
然后使用
相关问题 更多 >
编程相关推荐