특정 네트워크 스캐닝 도구 (nmap, xprobe, p0f)를 지정할 수있는 옵션을 제공하는 응용 프로그램을 작성한 다음 해당 도구로 주어진 서브넷을 검사합니다. 도구를 다시 구현하고 간단히 쉘에서 호출하고 내 응용 프로그램에 대한 응답을 구문 분석 한 다음 결과를 파싱하고 DB의 특정 형식으로 저장합니다. 이 응용 프로그램은 기본적으로 DB의 데이터를 사용할 다른 응용 프로그램의 피더 응용 프로그램입니다.Python : 가져온 모듈에 대한 핸들 얻기
필자는 모든 Scan Tool 인터페이스가 플러그인으로 구현되도록 코드를 작성했습니다. 구조는 모든 개발자는 (당연히 올바른 의미에서)를 tool.py 파일을 작성하고 플러그인 폴더로 드롭됩니다 할 필요가,
Project/
DBWriter.py
Scanner/
__init__.py
network_mapper.py
Scanner.py
Plugins/
__init__.py
nmap.py
p0f.py
Others/
그래서 새로운 검색 인터페이스를 추가하는 것입니다.
이 작업을 수행하려면 런타임에 올바른 파이썬 모듈을 가져올 수 있어야합니다. 사용자가
를 입력 내용에 따라from Plugins import nmap
or
from Plugins import xprobe
여기에 코드가 제대로 작동 내가
f,p,d = imp.find_module("Plugins")
x = imp.load_module("Plugins",f,p,d)
path_n = x.__path__
f,p,d = imp.find_module("%s"%(tool),path_n)
tool_mod = imp.load_module("%s"%(tool),f,p,d)
tool_mod.scan() #Irrespective of what user enters or what new plugin is developed, this line does not need to change and will work as long as plug-in has a scan function
추가 한 코드입니다. 그러나 PyInstaller (Windows/* Nix 플랫폼 용)을 사용하여 하나의 실행 파일로 묶으려고하면 find_module과 load_module에서 많은 문제가 발생하여 결과적으로 경로가 올바르게 실행되지 않기 때문에 ImportError가 발생합니다 감압).
내 질문은 - 파이썬에서 PyInstaller와 잘 작동하는 동일한 기능을 사용할 수있는 다른 방법이 있습니까?
나는 이전 pyInstaller 중에있는 해결 방법을 찾고이 질문을했다,하지만 당신은 Windows에서만 실행해야하는 경우에는 응답은 내가 py2exe을 시도하는 것이 좋습니다 파이썬
그건 방법이 될거에요,하지만 PyInstaller가 (거의 아름답게) – RedBaron
을 제공하는 크로스 플랫폼 옵션을 찾고있었습니다. 어떤 플랫폼이 필요한지 질문에 메모를 추가하는 것이 좋습니다. –