github.com/micro/go-micro/examples@v0.0.0-20210105173217-bf4ab679e18b/getip/main.go (about) 1 package main 2 3 import ( 4 "context" 5 "fmt" 6 7 proto "github.com/micro/go-micro/examples/service/proto" 8 "github.com/micro/go-micro/v2" 9 "github.com/micro/go-micro/v2/metadata" 10 ) 11 12 type Greeter struct{} 13 14 func (g *Greeter) Hello(ctx context.Context, req *proto.Request, rsp *proto.Response) error { 15 md, _ := metadata.FromContext(ctx) 16 17 // local ip of service 18 fmt.Println("local ip is", md["Local"]) 19 20 // remote ip of caller 21 fmt.Println("remote ip is", md["Remote"]) 22 23 rsp.Greeting = "Hello " + req.Name 24 return nil 25 } 26 27 func main() { 28 service := micro.NewService( 29 micro.Name("greeter"), 30 ) 31 32 service.Init() 33 34 proto.RegisterGreeterHandler(service.Server(), new(Greeter)) 35 36 if err := service.Run(); err != nil { 37 fmt.Println(err) 38 } 39 }