Sunny网络中间件 和 Fiddler 类似。 是可跨平台的网络分析组件
可用于HTTP/HTTPS/WS/WSS/TCP/UDP网络分析 为二次开发量身制作
支持 获取/修改 HTTP/HTTPS/WS/WSS/TCP/TLS-TCP/UDP 发送及返回数据
支持 对 HTTP/HTTPS/WS/WSS 指定连接使用指定代理
支持 对 HTTP/HTTPS/WS/WSS/TCP/TLS-TCP 链接重定向
支持 gzip, deflate, br 解码
支持 WS/WSS/TCP/TLS-TCP/UDP 主动发送数据
package main import ( "fmt" "github.com/qtgolang/SunnyNet/SunnyNet" "github.com/qtgolang/SunnyNet/public" "time" ) var Sunny = SunnyNet.NewSunny() func main() { //绑定回调函数 Sunny.SetGoCallback(HttpCallback, TcpCallback, WSCallback, UdpCallback) //绑定端口号并启动 Sunny.SetPort(2023).Start() //避免程序退出 time.Sleep(24 * time.Hour) } func HttpCallback(Conn *SunnyNet.HttpConn) { if Conn.Type == public.HttpSendRequest { //发起请求 //这里可以对请求数据修改 if Conn.Request.Body != nil { Body, _ := io.ReadAll(Conn.Request.Body) _ = Conn.Request.Body.Close() //这里可以对Body修改 Body = []byte("Hello Sunny Request") Conn.Request.Body = io.NopCloser(bytes.NewBuffer(Body)) //直接响应,不让其发送请求 //Conn.StopRequest(200, "Hello Word") } fmt.Println(Conn.Request.URL.String()) } else if Conn.Type == public.HttpResponseOK { //请求完成 if Conn.Response.Body != nil { Body, _ := io.ReadAll(Conn.Response.Body) _ = Conn.Response.Body.Close() //这里可以对Body修改 Body = []byte("Hello Sunny Response") Conn.Response.Body = io.NopCloser(bytes.NewBuffer(Body)) } } else if Conn.Type == public.HttpRequestFail { //请求错误 } } func WSCallback(Conn *SunnyNet.WsConn) { //捕获到数据可以修改,修改空数据,取消发送/接收 fmt.Println(Conn.Url) } func TcpCallback(Conn *SunnyNet.TcpConn) { //捕获到数据可以修改,修改空数据,取消发送/接收 fmt.Println(Conn.Pid, Conn.LocalAddr, Conn.RemoteAddr, Conn.Type, Conn.GetBodyLen()) } func UdpCallback(Conn *SunnyNet.UDPConn) { //在 Windows 捕获UDP需要加载驱动,并且设置进程名 //其他情况需要设置Socket5代理,才能捕获到UDP //捕获到数据可以修改,修改空数据,取消发送/接收 if public.SunnyNetUDPTypeReceive == Conn.Type { fmt.Println("接收UDP", Conn.LocalAddress, Conn.RemoteAddress, len(Conn.Data)) } if public.SunnyNetUDPTypeSend == Conn.Type { fmt.Println("发送UDP", Conn.LocalAddress, Conn.RemoteAddress, len(Conn.Data)) } if public.SunnyNetUDPTypeClosed == Conn.Type { fmt.Println("关闭UDP", Conn.LocalAddress, Conn.RemoteAddress) } }
代码:
https://gitee.com/qtr/SunnyNet
https://esunny.vip/