我有一个用Shelf和Rpc apis编写的dart Web服务应用程序。
我需要在我的api方法中检查客户端Ip,但我无法弄清楚如何。
context方法不包含HttpRequest .contentInfo属性。
此外,架子Request对象也不包含它,因此中间件函数也没用。
任何人都有如何解决这个问题的想法?
答案 0 :(得分:0)
您可以使用shelf的中间件概念来完成此操作。您可以在此处查看示例记录器中间件:https://www.crossdart.info/p/shelf/0.6.5+2/src/handlers/logger.dart.html。可以在此处找到使用记录器的示例:https://github.com/dart-lang/shelf
在中间件中,您可以在请求对象中找到ip地址(扩展消息)。消息使您可以访问包含IP地址的原始http标头。从那里,您可以决定如何处理无效的ip(抛出错误,返回带错误的请求等)。