github.com/keysonzzz/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgGetIP/main.go (about)

     1  package kmgGetIP
     2  
     3  import (
     4  	"github.com/bronze1man/kmg/kmgErr"
     5  	"github.com/bronze1man/kmg/kmgNet/kmgHttp"
     6  	"io/ioutil"
     7  	"net/http"
     8  	"strings"
     9  )
    10  
    11  //Server Side
    12  func GetIPFromCTXAndRespond(ctx *kmgHttp.Context) {
    13  	req := ctx.GetRequest()
    14  	address := req.RemoteAddr
    15  	address = strings.Split(address, ":")[0]
    16  	ctx.WriteString("OK" + address)
    17  }
    18  
    19  //Client Side
    20  func GetIPFromRemote(remoteServerUrl string) (ip string) {
    21  	resp, err := http.Get(remoteServerUrl)
    22  	kmgErr.PanicIfError(err)
    23  	body, err := ioutil.ReadAll(resp.Body)
    24  	kmgErr.PanicIfError(err)
    25  	ip = string(body)
    26  	if !strings.HasPrefix(ip, "OK") {
    27  		panic("WhoAmI Error: can not get a Ipv4 address " + ip)
    28  	}
    29  	return strings.TrimPrefix(ip, "OK")
    30  }