如何在dart shelf-rpc服务器中获取客户端IP

时间:2016-01-20 14:52:44

标签: dart httprequest clientip dart-shelf dart-rpc

我有一个用Shelf和Rpc apis编写的dart Web服务应用程序。

我需要在我的api方法中检查客户端Ip,但我无法弄清楚如何。

context方法不包含HttpRequest .contentInfo属性。

此外,架子Request对象也不包含它,因此中间件函数也没用。

任何人都有如何解决这个问题的想法?

1 个答案:

答案 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(抛出错误,返回带错误的请求等)。