go实现类似cloudflare的隐藏真实ip代理转发请求限速人机验证代码
代码语言:golang
所属分类:其他
代码描述:go实现类似cloudflare的隐藏真实ip代理转发请求限速人机验证代码,可设置url单位时间内最多访问多少次,超过就要进行验证码识别真人操作,后台真实服务器ip不对外暴露。
代码标签: go 类似 cloudflare 隐藏 真实 ip 代理 转发 请求 限速 人机 验证 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
package main
import (
"fmt"
"log"
"net/http"
"net/http/httputil"
"net/url"
"sync"
"time"
"github.com/dchest/captcha"
"golang.org/x/time/rate"
)
// =================================================================================================
// 配置项
// =================================================================================================
const (
// 代理服务器监听的地址
proxyListenAddr = ":8080"
// 后端真实服务器的地址
backendServerURL = "http://localhost:8081"
// IP 在验证列表中的过期时间
ipVerificationTimeout = 5 * time.Minute
// 单个 URL 的访问频率: 5秒内1次
urlRequestInterval = 5 * time.Second
)
// =================================================================================================
// IP 访问者管理
// =================================================================================================
// visitor 结构体用于存储每个 IP 对不同 URL 的速率限制器
type visitor struct {
urlLimiters map[string]*rate.Limiter
lastSeen time.Time
}
// 全局变量,用于存储每个 IP 地址的访问信息
var visitors = make(map[string]*visitor)
v.........完整代码请登录后点击上方下载按钮下载查看















网友评论0