mirror of
https://github.com/SunBK201/UA3F.git
synced 2025-12-16 08:44:29 +00:00
58 lines
1.4 KiB
Go
58 lines
1.4 KiB
Go
package config
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
)
|
|
|
|
const (
|
|
ServerModeSocks5 = "socks5"
|
|
ServerModeTProxy = "tproxy"
|
|
)
|
|
|
|
type Config struct {
|
|
ServerMode string
|
|
BindAddr string
|
|
Port int
|
|
ListenAddr string
|
|
LogLevel string
|
|
PayloadUA string
|
|
UAPattern string
|
|
EnablePartialReplace bool
|
|
}
|
|
|
|
func Parse() (*Config, bool) {
|
|
var (
|
|
serverMode string
|
|
bindAddr string
|
|
port int
|
|
loglevel string
|
|
payloadUA string
|
|
uaPattern string
|
|
partial bool
|
|
showVer bool
|
|
)
|
|
|
|
flag.StringVar(&serverMode, "m", ServerModeSocks5, "server mode: socks5 or tproxy (default: socks5)")
|
|
flag.StringVar(&bindAddr, "b", "127.0.0.1", "bind address (default: 127.0.0.1)")
|
|
flag.IntVar(&port, "p", 1080, "port")
|
|
flag.StringVar(&payloadUA, "f", "FFF", "User-Agent")
|
|
flag.StringVar(&uaPattern, "r", "", "UA-Pattern")
|
|
flag.BoolVar(&partial, "s", false, "Enable Regex Partial Replace")
|
|
flag.StringVar(&loglevel, "l", "info", "Log level (default: info)")
|
|
flag.BoolVar(&showVer, "v", false, "show version")
|
|
flag.Parse()
|
|
|
|
cfg := &Config{
|
|
ServerMode: serverMode,
|
|
BindAddr: bindAddr,
|
|
Port: port,
|
|
ListenAddr: fmt.Sprintf("%s:%d", bindAddr, port),
|
|
LogLevel: loglevel,
|
|
PayloadUA: payloadUA,
|
|
UAPattern: uaPattern,
|
|
EnablePartialReplace: partial,
|
|
}
|
|
return cfg, showVer
|
|
}
|