mirror of
https://github.com/shadow1ng/fscan.git
synced 2026-09-22 03:10:42 +08:00
fix: 修复6个运行时问题
1. 抑制 gmtls 库的 handshake error stdout 噪声 gmtls/conn.go:1304 硬编码了 fmt.Println,在调用时临时重定向 os.Stdout 2. MySQL 3306 服务名误识别为 genetec-5400 nmap 指纹库将 MySQL 握手包的随机 salt 误匹配,通过 banner 特征校正 3. 管道输出时自动禁用 ANSI 控制码 检测 stdout 是否为终端,非终端时自动启用 NoColor 4. 进度条完成消息措辞精确化 去掉冗余冒号,保持信息简洁一致 5. URL 模式跳过不必要的 TLS 探测 用户已通过 -u 显式指定 http:// 协议时直接使用,不再做 TLS 握手 6. 无网络探测数据时降低默认重试次数 -np 跳过存活探测后,将默认重试从 3 降到 2,加速不可达主机的超时
This commit is contained in:
+14
-1
@@ -11,6 +11,7 @@ import (
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/shadow1ng/fscan/common"
|
||||
@@ -31,6 +32,8 @@ const (
|
||||
ProxySocks5URL = "socks5://127.0.0.1:1080"
|
||||
)
|
||||
|
||||
var gmtlsStdoutMu sync.Mutex
|
||||
|
||||
// 全局HTTP客户端变量
|
||||
var (
|
||||
Client *http.Client // 标准HTTP客户端
|
||||
@@ -202,10 +205,20 @@ func InitHTTPClient(ThreadsNum int, DownProxy string, Timeout time.Duration, max
|
||||
Timeout: dialTimeout,
|
||||
KeepAlive: keepAlive,
|
||||
}
|
||||
return gmtls.DialWithDialer(dialer, network, addr, &gmtls.Config{
|
||||
// 抑制 gmtls 库的 fmt.Println("handshake error") 噪声
|
||||
gmtlsStdoutMu.Lock()
|
||||
orig := os.Stdout
|
||||
if devNull, err := os.OpenFile(os.DevNull, os.O_WRONLY, 0); err == nil {
|
||||
os.Stdout = devNull
|
||||
defer devNull.Close()
|
||||
}
|
||||
conn, err := gmtls.DialWithDialer(dialer, network, addr, &gmtls.Config{
|
||||
GMSupport: gmtls.NewGMSupport(),
|
||||
InsecureSkipVerify: true,
|
||||
})
|
||||
os.Stdout = orig
|
||||
gmtlsStdoutMu.Unlock()
|
||||
return conn, err
|
||||
},
|
||||
MaxConnsPerHost: 20,
|
||||
MaxIdleConns: 20,
|
||||
|
||||
Reference in New Issue
Block a user