Golang 服務器返回公網地址

gitee地址: https://gitee.com/wang_li/ReturnOutIPhtml

代碼

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())
}

 

打包爲可執行文件git

# go build -o ReturnOutIP

 

獲取幫助bash

# ./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
#

 

默認參數
默認運行監聽的端口爲: 0.0.0.0:93 監聽的http路由爲 /4u6385IPui

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

 

指定監聽的端口和路由spa

``` 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
```

 

客戶端擴展: http://www.javashuo.com/article/p-sdzqhaja-gv.htmlcode

相關文章
相關標籤/搜索