feat: expose transparent web device forwarders

This commit is contained in:
Yoilun
2026-05-15 11:25:18 +08:00
parent 2f458b1691
commit 7b32b21f07
4 changed files with 24 additions and 10 deletions

View File

@@ -128,13 +128,22 @@ func (s *Service) Scan(r *http.Request) (*ScanResult, error) {
}
s.allowIP(device.IP)
forwardPort, forwardErr := s.EnsureForwarder(device.IP)
if forwardErr != nil {
result.Errors = append(result.Errors, fmt.Sprintf("%s: 启动%s透明转发失败: %v", iface.Name, device.IP, forwardErr))
continue
}
scheme, host := requestBase(r)
deviceInfo := DeviceInfo{
IP: device.IP,
Interface: iface.Name,
Port: device.Port,
TargetURL: fmt.Sprintf("http://%s/", device.IP),
ProxyURL: fmt.Sprintf("/proxy/web/%s/", device.IP),
IP: device.IP,
Interface: iface.Name,
Port: device.Port,
TargetURL: fmt.Sprintf("http://%s/", device.IP),
ProxyURL: fmt.Sprintf("/proxy/web/%s/", device.IP),
DirectURL: buildDirectURL(scheme, host, forwardPort),
ForwardPort: forwardPort,
}
result.Devices = append(result.Devices, deviceInfo)
}