我有一个具有以下结构的mongodb数据库:
"addr1": {
"hostname": { "-name": "x" },
"os": {
"-version": "x",
"-acc": "x"
},
"ports":{
"PORTNUMY" : {
"service": "x",
"version": "x"
},
"PORTNUMX" : {
"service": "s",
"version": "v"
}
}
}
由以下寄存器组成:
{"ip": "X.X.X.X", "os accuracy": "96", "hostname": "control0.dnssw.net", "os": "Juniper SA2500 SSL VPN gateway", "ports": [{"product": "na", "version": "na", "protocol": "tcp", "port": "25", "service": "smtp"}, {"product": "na", "version": "na", "protocol": "tcp", "port": "80", "service": "http"}, {"product": "na", "version": "na", "protocol": "tcp", "port": "443", "service": "http"}, {"product": "na", "version": "na", "protocol": "tcp", "port": "465", "service": "smtps"}, {"product": "na", "version": "na", "protocol": "tcp", "port": "993", "service": "imaps"}, {"product": "na", "version": "na", "protocol": "tcp", "port": "995", "service": "pop3s"}]}
我在python中使用它来查找与某个IP地址匹配的寄存器:
todos = db.mapa.find({'addr': 'X.X.X.X'})
我想要的是检查有多少个ip,例如端口80打开。
有什么想法吗?我今天开始用json和mongodb使用python我用谷歌搜索但是我找不到任何直接的东西。
非常感谢!
答案 0 :(得分:0)
考虑上面的json结构:
import json
jobj = json.loads(input_data)
port_count = 0
for i in jobj['ports']:
if int(i['port']) == 80:
port_count += 1
>>> print(port_count)
1