我怎样才能在Golang GRPC客户端IP地址和用户代理?(How can I get the c

2019-10-29 15:12发布

我建立了一系列GRPC请求和所有工作正常反应,但我坚持,当我试图获取客户端IP地址,谁打电话给我GRPC API的用户代理。

我读了围棋GRPC文档和其他来源,但并没有找到太多有价值的信息。 他们很少在Golang谈论GRPC。

我应该成立一个键值建立GRPC API时存储的IP地址的情况下?

Answer 1:

获得IP地址的方式已经回答了相当不错的位置: 从http.Request获取客户端的IP地址(Golang)的正确方法

对于User-Agent头,你只需要解析User-Agent头像这样: userAgent := response.Header.Get("User-Agent")



Answer 2:

在Golang GRPC,您可以使用

func (UserServicesServer) Login(ctx context.Context, request *sso.LoginRequest) (*sso.LoginResponse, error) {
p, _ := peer.FromContext(ctx)
request.Frontendip = p.Addr.String()
.
.
}

但是,不要忘了进口"google.golang.org/grpc/peer"



文章来源: How can I get the client IP address and user-agent in Golang gRPC?
标签: go grpc grpc-go