joern文档说:
通过在脚本启动时将数据库加载到内存中,可以直接从脚本访问图形数据库。
你怎么能这么做?
在我的代码上运行java -jar $JOERN/bin/joern.jar $CodeDirectory之后,将使用所有这些. is和..db文件创建一个Neo4J数据库目录(.joernIndex)。没有运行访问我的代码服务器的(与python一起使用)有可能吗?(服务器有必要吗?)
发布于 2017-02-10 12:17:53
这里记录了使用Joern数据库的web接口方式:
http://joern.readthedocs.io/en/latest/import.html
python接口记录在这里:
http://joern.readthedocs.io/en/latest/access.html#python-joern-api
而该方案:
from joern.all import JoernSteps
j = JoernSteps()
j.setGraphDbURL('http://localhost:7474/db/data/')
# j.addStepsDir('Use this to inject utility traversals')
j.connectToDatabase()
res = j.runGremlinQuery('getFunctionsByName("main")')
res = j.runCypherQuery('...')
for r in res: print r基本上是与Neo4J服务器对话的URL方式,这被称为Joern的"REST“。
现在,如果您想“直接”访问数据库,可以使用一些Java程序,如下所示:
或者是一些蟒蛇,如下所示:
https://neo4j.com/developer/python/
https://marcobonzanini.com/2015/04/06/getting-started-with-neo4j-and-python/
但是底线是,您仍然要启动Neo4J数据库服务器,并且您的程序(通过neo4j驱动程序,使基于网络的通信成为可能)与数据库服务器进行对话。
但是,如果您想直接加载“数据库”文件,自己解析它,并提取出数据,那么它将是困难的。
https://stackoverflow.com/questions/40444542
复制相似问题