首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Python从Google日志记录中获得请求IP地址?

如何使用Python从Google日志记录中获得请求IP地址?
EN

Stack Overflow用户
提问于 2021-03-09 00:31:54
回答 1查看 717关注 0票数 1

使用google-cloud-logging模块,我可以迭代我的GAE应用程序的日志消息,我想列出请求日志中每一项的请求IP地址。官方文件没有提到如何破解源代码,也没有给我太多的希望,因为日志条目大多是TextEntry,很少有对象属性。

我的代码是这样的:

代码语言:javascript
复制
logging_client = logging.Client()
logger = logging_client.logger('projects/MYPROJECT/logs/appengine.googleapis.com%2Frequest_log')
for entry in logging_client.list_entries():
    timestamp = entry.timestamp.isoformat()
    print("* {}, {}: {}".format(timestamp, type(entry), entry))

当查看Google控制台中相同的日志时,我看到每个日志条目都有一个protoPayload.ip字段--这正是我希望提取的字段。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-10 09:45:42

这是目前不可能的,因为用于Stackdriver日志记录的Python客户端库还不支持这个特性。由于您可以签入对象及其代码的文档,因此无法检索包含调用方Ip的部分。

但是,您可以在每次调用App服务时自己记录这个值,从而可以检索它。调用方IP的值位于'X-Appengine-User-Ip'报头中。您可以使用此代码作为如何获取它的示例:

代码语言:javascript
复制
from flask import Flask
from flask import request

app = Flask(__name__)


@app.route('/')
def hello_world():
    ip = request.headers['X-Appengine-User-Ip']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66539158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档