Explorar el Código

Added the "addr" parameter

Added the "addr" parameter in order to choose where to bind
fixed format with go fmt
tags/v1.0
Ramiro de Zavalia hace 5 años
padre
commit
0bc77b2600
Se han modificado 1 ficheros con 15 adiciones y 12 borrados
  1. 15
    12
      main.go

+ 15
- 12
main.go Ver fichero

@@ -1,17 +1,18 @@
package main

import (
"log"
"net/http"
"strings"
"encoding/json"
"encoding/json"
"flag"
"log"
"net/http"
"strings"
)

type jsonOutput struct {
Ip string `json:"ip"`
}

func ipJsonOutput (w http.ResponseWriter, r *http.Request) {
func ipJsonOutput(w http.ResponseWriter, r *http.Request) {
var ip jsonOutput
ip.Ip = remoteAddr(r)
output, err := json.Marshal(ip)
@@ -21,23 +22,25 @@ func ipJsonOutput (w http.ResponseWriter, r *http.Request) {
w.Write([]byte(output))
}

func ipOutput (w http.ResponseWriter, r *http.Request) {
func ipOutput(w http.ResponseWriter, r *http.Request) {
ip := remoteAddr(r)
w.Write([]byte(ip))
}

func remoteAddr ( r *http.Request) string {
func remoteAddr(r *http.Request) string {
var ip string
if r.RemoteAddr[0] == '[' {
ip = strings.Split(r.RemoteAddr,"]")[0][1:]
ip = strings.Split(r.RemoteAddr, "]")[0][1:]
} else {
ip = strings.Split(r.RemoteAddr,":")[0]
ip = strings.Split(r.RemoteAddr, ":")[0]
}
return ip
}

func main() {
http.HandleFunc("/",ipOutput)
http.HandleFunc("/json",ipJsonOutput)
log.Fatal(http.ListenAndServe(":8080", nil))
addr := flag.String("addr", ":8080", "local ip:port to bind")
flag.Parse()
http.HandleFunc("/", ipOutput)
http.HandleFunc("/json", ipJsonOutput)
log.Fatal(http.ListenAndServe(*addr, nil))
}

Cargando…
Cancelar
Guardar