首页 > 解决方案 > 无论如何使用python打印客户端IP地址?

问题描述

db.currentOp(true).inprog.forEach(function(d){if(d.client)print(d.client, d.connectionId)})

输出:

127.0.0.1:64629 383
127.0.0.1:56878 363

我使用此命令在 shell 中获取客户端的 IP 地址。有没有办法在python中得到它?

标签: pythonmongodbpymongo

解决方案


手册db.currentOp说_

db.currentOp 包装了数据库命令 currentOp。

因此,一旦我们知道这一点,我们就可以使用db.command()in pymongo,并复制您的 javascript,如下所示:

from pymongo import MongoClient

db = MongoClient()['admin']
command_result = db.command({'currentOp': 1})
inprogs = command_result.get('inprog')

for inprog in inprogs:
    if 'client' in inprog:
        print(inprog.get('client'), inprog.get('connectionId'))

给出(例如):

172.17.0.1:39734 15

推荐阅读