mirror of
https://github.com/schollz/croc.git
synced 2025-10-11 13:21:00 +02:00
parse url
This commit is contained in:
parent
bd60f76519
commit
10de575f60
1 changed files with 16 additions and 2 deletions
|
@ -6,6 +6,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"net"
|
"net"
|
||||||
|
"net/url"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/schollz/croc/v8/src/utils"
|
"github.com/schollz/croc/v8/src/utils"
|
||||||
|
@ -34,13 +35,26 @@ func NewConnection(address string, timelimit ...time.Duration) (c *Comm, err err
|
||||||
var dialer proxy.Dialer
|
var dialer proxy.Dialer
|
||||||
dialer, err = proxy.SOCKS5("tcp", Socks5Proxy, nil, proxy.Direct)
|
dialer, err = proxy.SOCKS5("tcp", Socks5Proxy, nil, proxy.Direct)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = fmt.Errorf("proxy failed: %w", err)
|
err = fmt.Errorf("socks5 proxy failed: %w", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
connection, err = dialer.Dial("tcp", address)
|
connection, err = dialer.Dial("tcp", address)
|
||||||
} else if HTTPProxy != "" && !utils.IsLocalIP(address) {
|
} else if HTTPProxy != "" && !utils.IsLocalIP(address) {
|
||||||
|
var u *url.URL
|
||||||
|
u, err = url.Parse(address)
|
||||||
|
if err != nil {
|
||||||
|
u, err = url.Parse("http://" + address)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
var dialer proxy.Dialer
|
var dialer proxy.Dialer
|
||||||
dialer, err = proxy.FromURL(nil, proxy.Direct)
|
dialer, err = proxy.FromURL(u, proxy.Direct)
|
||||||
|
if err != nil {
|
||||||
|
err = fmt.Errorf("http proxy failed: %w", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
connection, err = dialer.Dial("tcp", address)
|
||||||
} else {
|
} else {
|
||||||
connection, err = net.DialTimeout("tcp", address, tlimit)
|
connection, err = net.DialTimeout("tcp", address, tlimit)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue