fising

第 1060 号会员 /

回复了 docxsyang 创建的主题: 请教一个golang安装bin包的问题

  • 在有GOBIN环境变量的前提下: 安装在 $GOBIN 下
  • 在没有设置GOBIN环境变量的前提下: 报错: go install: no install location for .go files listed on command line (GOBIN not set)

回复了 hamax7979 创建的主题: http 服务器只服务特定ip问题

package main

import (
    "net/http"
    "strings"
)

type Handler struct{}

func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
    if strings.Split(r.RemoteAddr, ":")[0] != "127.0.0.1" {
        w.Write([]byte("Access denied."))
    } else {
        w.Write([]byte("Hello, world!"))
    }
}

func main() {
    http.ListenAndServe(":8080", &Handler{})
}

上面的例子仅仅服务 127.0.0.1 这个客户端

回复了 hamax7979 创建的主题: http 服务器只服务特定ip问题

楼主你完全没有理解 ListenAndServe 函数。

文档上面是这样说的:ListenAndServe listens on the TCP network address addr …

它的第一个参数其实是欲监听的本地网络接口的地址,并不是客户端的 IP 地址。

想要实现你说的功能,两个方法吧:

  1. 防火墙阻止其他 IP 地址,而对目标 IP 地址放行
  2. 在应用层获取客户端 IP 地址,如果与目标 IP 不一致,则 DENY 这个请求。