用go语言建一个简易服务器,怎样在获取客户端的IP?
我想每次客户端访问时,把客户端的IP地址写到 ResponseWriter 里。能否实现?望不吝指点。
代码:
package main
import (
"io"
"log"
"net/http"
)
type myMUX struct {
}
func (m *myMUX) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if r.URL.Path == "/" { //如果客户端的访问路径是网站的根路径
io.WriteString(w, "Hello, 您访问了根页面。")
// io.WriteString(w, w, r.RemoteAddr) 调用RemoteAddr,输出的是 “[::1]:44362” 之类的字符串
return
}
http.NotFound(w, r)
return
}
func main() {
mux := &myMUX{}
err := http.ListenAndServe(":9090", mux) //设置监听的端口
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
共 7 个回复
snake117
request里的RemoteAddr
xxdsan
请问调用了RemoteAddr方法,为何显示[::1]:44362这类的字符串?
David
@xxdsan, your code?
nanjishidu
感觉可以看下 beego context模块下的input对象IP ,
snake117
@xxdsan 那个好象是ipv6格式的地址。
captain
试下at自己。 @captain
ggaaooppeenngg
@ggaaooppeenngg 我也at一下自己