我在另一个模块的模块中调用一个方法,并且遇到了一个奇怪的错误。
require 'nmap'
...
module Enumeration::Hostnames
def reverse_dns ip_addrs
...
ip_addrs.each do |ip_addr|
list = ListScan.test ip_addr #this is the problem
...
end
...
ListScan位于nmap文件中。
module ListScan
def ListScan.test target
target = '-sL ' + target
ListScan::parse_results Nmap::Parser.parsescan('nmap',target)
end
...
end
错误是`const_missing':未初始化的常量Enumeration :: Hostnames :: ListScan(NameError)行ListScan.test ip_addr。
为什么假设ListScan在Enumeration :: Hostnames模块中?将ListScan混合到主机名不起作用。
答案 0 :(得分:1)
Ruby从当前上下文开始搜索常量,在本例中为Enumeration::Hostnames
。
尝试使用
::ListScan.test ip_address