我建立了一系列GRPC请求和所有工作正常反应,但我坚持,当我试图获取客户端IP地址,谁打电话给我GRPC API的用户代理。
我读了围棋GRPC文档和其他来源,但并没有找到太多有价值的信息。 他们很少在Golang谈论GRPC。
我应该成立一个键值建立GRPC API时存储的IP地址的情况下?
我建立了一系列GRPC请求和所有工作正常反应,但我坚持,当我试图获取客户端IP地址,谁打电话给我GRPC API的用户代理。
我读了围棋GRPC文档和其他来源,但并没有找到太多有价值的信息。 他们很少在Golang谈论GRPC。
我应该成立一个键值建立GRPC API时存储的IP地址的情况下?
获得IP地址的方式已经回答了相当不错的位置: 从http.Request获取客户端的IP地址(Golang)的正确方法
对于User-Agent头,你只需要解析User-Agent
头像这样: userAgent := response.Header.Get("User-Agent")
在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"