Golang server returns the public address

gitee Address: https://gitee.com/wang_li/ReturnOutIP

Code

package main

import (
    "flag"
    "fmt"
    "log"
    "net/http"
    "os"
    "strings"
    "time"
)

var (
    h bool
    LitenAddr string
    ListenRoute string
)

func init() {
    flag.BoolVar(&h,"h",false,"This help")
    flag.StringVar(&LitenAddr,"ListenAddr","0.0.0.0:93","Set http server listen address")
    flag.StringVar(&ListenRoute,"ListenRoute","/4u6385IP","Set http server listen Route")
}

func OutIPAddress(w http.ResponseWriter, r *http.Request) {
    slice01 := strings.Split(r.RemoteAddr,":")
    log.Println(time.Now(),"-- 4u6385IP --",r)
    fmt.Fprintf(w,slice01[0])
}

func main() {
    flag.Parse()

    if h {
        flag.Usage()
        os.Exit(0)
    }

    if ! strings.HasPrefix(ListenRoute,"/") {
        ListenRoute = "/" + ListenRoute
    }

    http.HandleFunc(ListenRoute,OutIPAddress)

    log.Println("Server running on http://" + LitenAddr + ListenRoute)

    s := &http.Server{
        Addr:    LitenAddr,
        ReadTimeout:10*time.Second,
        WriteTimeout:10*time.Second,
        MaxHeaderBytes:1<<20,
    }
    log.Fatal(s.ListenAndServe())
}

 

Packaged as an executable file

# go build -o ReturnOutIP

 

Getting Help

# ./ReturnOutIP -h
Usage of ./ReturnOutIP:
  -ListenAddr string
        Set http server listen address (default "0.0.0.0:93")
  -ListenRoute string
        Set http server listen Route (default "/4u6385IP")
  -h    This help
#

 

The default parameter
default listening port is running: http routing 0.0.0.0:93 listening to / 4u6385IP

# ./ReturnOutIP
2019/09/03 15:36:55 Server running on http://0.0.0.0:93/4u6385IP

 

Port and routes designated listening

``` bash
# ./ReturnOutIP -ListenAddr "0.0.0.0:95" -ListenRoute '/OutIP'
2019/09/03 15:41:24 Server running on http://0.0.0.0:95/OutIP
```

 

Client Extensions:  https://www.cnblogs.com/wang-li/p/11437310.html

 



Guess you like

Origin www.cnblogs.com/wang-li/p/11453633.html