Я установил nmap.exe и модуль nmap. Я не уверен, как настроить путь nmap. блок кода, где вы вводите Nmap путь заключается в следующемПроблемы с модулем Nmap в python
class PortScanner(object):
"""
PortScanner class allows to use nmap from python
"""
def __init__(self, nmap_search_path=('nmap','/usr/bin/nmap','/usr/local/bin/nmap','/sw/bin/nmap','/opt/local/bin/nmap')):
"""
Initialize PortScanner module
* detects nmap on the system and nmap version
* may raise PortScannerError exception if nmap is not found in the path
:param nmap_search_path: tupple of string where to search for nmap executable. Change this if you want to use a specific version of nmap.
:returns: nothing
"""
self._nmap_path = 'C:/Program Files (x86)/Nmap/' # nmap path
self._scan_result = {}
self._nmap_version_number = 0 # nmap version number
self._nmap_subversion_number = 0 # nmap subversion number
self._nmap_last_output = '' # last full ascii nmap output
is_nmap_found = False # true if we have found nmap
self.__process = None
# regex used to detect nmap
regex = re.compile('Nmap version [0-9]*\.[0-9]*[^ ]* \(http://.* \)')
# launch 'nmap -V', we wait after 'Nmap version 5.0 (http://nmap.org)'
# This is for Mac OSX. When idle3 is launched from the finder, PATH is not set so nmap was not found
for nmap_path in nmap_search_path:
try:
p = subprocess.Popen([nmap_path, '-V'], bufsize=10000, stdout=subprocess.PIPE)
except OSError:
pass
else:
self._nmap_path = nmap_path # save path
break
else:
raise PortScannerError('nmap program was not found in path. PATH is : {0}'.format(os.getenv('PATH')))
Я поместил путь в переменной self._nmap_path. Однако, похоже, это не работает. Может ли кто-нибудь с опытом работы в nmap мне помочь? Как начать работу в nmap? Я исследовал это часами, но до сих пор не получил ответа. Ошибка я получаю это
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
nmap.PortScanner()
File "C:\Python33\Lib\site-packages\nmap\nmap.py", line 192, in __init__
raise PortScannerError('nmap program was not found in path')
nmap.PortScannerError: 'nmap program was not found in path'
"Это не работает" не является полезным помощником (извините). Предоставьте нам сообщения об ошибках или любые другие данные, которые вы получаете. Кроме того, что вы пробовали? Что вы исследовали в те часы? – Ruben
Я добавил отчет об ошибке на вопрос – user3129956
'_nmap_path' сохраняет путь для последующего использования. Вместо этого вызовите класс с последовательностью, содержащей абсолютный путь, такой как 'PortScanner (('C:/Program Files (x86) /Nmap/nmap.exe',))'. Я предлагаю начать с учебника Python, если это не сразу очевидно. В любом случае, если вам повезет, что это сработает, но я ничего не вижу о поддержке Windows на [сайте проекта] (http://xael.org/norman/python/python-nmap). Другие методы/классы могут принимать ОС POSIX. – eryksun