remove: unused
This commit is contained in:
238
cmd/cmd_temp.go
238
cmd/cmd_temp.go
@@ -1,141 +1,141 @@
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io"
|
||||
"math/rand"
|
||||
"net/http"
|
||||
"net/netip"
|
||||
"time"
|
||||
// import (
|
||||
// "context"
|
||||
// "fmt"
|
||||
// "io"
|
||||
// "math/rand"
|
||||
// "net/http"
|
||||
// "net/netip"
|
||||
// "time"
|
||||
|
||||
"github.com/hiddify/hiddify-core/common"
|
||||
"github.com/hiddify/hiddify-core/extension_repository/cleanip_scanner"
|
||||
"github.com/spf13/cobra"
|
||||
"golang.org/x/net/proxy"
|
||||
)
|
||||
// "github.com/hiddify/hiddify-core/common"
|
||||
// // "github.com/hiddify/hiddify-core/extension_repository/cleanip_scanner"
|
||||
// "github.com/spf13/cobra"
|
||||
// "golang.org/x/net/proxy"
|
||||
// )
|
||||
|
||||
var commandTemp = &cobra.Command{
|
||||
Use: "temp",
|
||||
Short: "temp",
|
||||
Args: cobra.MaximumNArgs(2),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
// fmt.Printf("Ping time: %d ms\n", Ping())
|
||||
scanner := cleanip_scanner.NewScannerEngine(&cleanip_scanner.ScannerOptions{
|
||||
UseIPv4: true,
|
||||
UseIPv6: common.CanConnectIPv6(),
|
||||
MaxDesirableRTT: 500 * time.Millisecond,
|
||||
IPQueueSize: 4,
|
||||
IPQueueTTL: 10 * time.Second,
|
||||
ConcurrentPings: 10,
|
||||
// MaxDesirableIPs: e.count,
|
||||
CidrList: cleanip_scanner.DefaultCFRanges(),
|
||||
PingFunc: func(ip netip.Addr) (cleanip_scanner.IPInfo, error) {
|
||||
fmt.Printf("Ping: %s\n", ip.String())
|
||||
return cleanip_scanner.IPInfo{
|
||||
AddrPort: netip.AddrPortFrom(ip, 80),
|
||||
RTT: time.Duration(rand.Intn(1000)),
|
||||
CreatedAt: time.Now(),
|
||||
}, nil
|
||||
},
|
||||
},
|
||||
)
|
||||
// var commandTemp = &cobra.Command{
|
||||
// Use: "temp",
|
||||
// Short: "temp",
|
||||
// Args: cobra.MaximumNArgs(2),
|
||||
// Run: func(cmd *cobra.Command, args []string) {
|
||||
// // fmt.Printf("Ping time: %d ms\n", Ping())
|
||||
// scanner := cleanip_scanner.NewScannerEngine(&cleanip_scanner.ScannerOptions{
|
||||
// UseIPv4: true,
|
||||
// UseIPv6: common.CanConnectIPv6(),
|
||||
// MaxDesirableRTT: 500 * time.Millisecond,
|
||||
// IPQueueSize: 4,
|
||||
// IPQueueTTL: 10 * time.Second,
|
||||
// ConcurrentPings: 10,
|
||||
// // MaxDesirableIPs: e.count,
|
||||
// CidrList: cleanip_scanner.DefaultCFRanges(),
|
||||
// PingFunc: func(ip netip.Addr) (cleanip_scanner.IPInfo, error) {
|
||||
// fmt.Printf("Ping: %s\n", ip.String())
|
||||
// return cleanip_scanner.IPInfo{
|
||||
// AddrPort: netip.AddrPortFrom(ip, 80),
|
||||
// RTT: time.Duration(rand.Intn(1000)),
|
||||
// CreatedAt: time.Now(),
|
||||
// }, nil
|
||||
// },
|
||||
// },
|
||||
// )
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second)
|
||||
defer cancel()
|
||||
// ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second)
|
||||
// defer cancel()
|
||||
|
||||
scanner.Run(ctx)
|
||||
// scanner.Run(ctx)
|
||||
|
||||
t := time.NewTicker(1 * time.Second)
|
||||
defer t.Stop()
|
||||
// t := time.NewTicker(1 * time.Second)
|
||||
// defer t.Stop()
|
||||
|
||||
for {
|
||||
ipList := scanner.GetAvailableIPs(false)
|
||||
if len(ipList) > 1 {
|
||||
// e.result = ""
|
||||
for i := 0; i < 2; i++ {
|
||||
// result = append(result, ipList[i])
|
||||
// e.result = e.result + ipList[i].AddrPort.String() + "\n"
|
||||
fmt.Printf("%d %s\n", ipList[i].RTT, ipList[i].AddrPort.String())
|
||||
}
|
||||
return
|
||||
}
|
||||
// for {
|
||||
// ipList := scanner.GetAvailableIPs(false)
|
||||
// if len(ipList) > 1 {
|
||||
// // e.result = ""
|
||||
// for i := 0; i < 2; i++ {
|
||||
// // result = append(result, ipList[i])
|
||||
// // e.result = e.result + ipList[i].AddrPort.String() + "\n"
|
||||
// fmt.Printf("%d %s\n", ipList[i].RTT, ipList[i].AddrPort.String())
|
||||
// }
|
||||
// return
|
||||
// }
|
||||
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
// Context is done
|
||||
return
|
||||
case <-t.C:
|
||||
// Prevent the loop from spinning too fast
|
||||
continue
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
// select {
|
||||
// case <-ctx.Done():
|
||||
// // Context is done
|
||||
// return
|
||||
// case <-t.C:
|
||||
// // Prevent the loop from spinning too fast
|
||||
// continue
|
||||
// }
|
||||
// }
|
||||
// },
|
||||
// }
|
||||
|
||||
func init() {
|
||||
mainCommand.AddCommand(commandTemp)
|
||||
}
|
||||
// func init() {
|
||||
// mainCommand.AddCommand(commandTemp)
|
||||
// }
|
||||
|
||||
func GetContent(url string) (string, error) {
|
||||
return ContentFromURL("GET", url, 10*time.Second)
|
||||
}
|
||||
// func GetContent(url string) (string, error) {
|
||||
// return ContentFromURL("GET", url, 10*time.Second)
|
||||
// }
|
||||
|
||||
func ContentFromURL(method string, url string, timeout time.Duration) (string, error) {
|
||||
if method == "" {
|
||||
return "", fmt.Errorf("empty method")
|
||||
}
|
||||
if url == "" {
|
||||
return "", fmt.Errorf("empty url")
|
||||
}
|
||||
// func ContentFromURL(method string, url string, timeout time.Duration) (string, error) {
|
||||
// if method == "" {
|
||||
// return "", fmt.Errorf("empty method")
|
||||
// }
|
||||
// if url == "" {
|
||||
// return "", fmt.Errorf("empty url")
|
||||
// }
|
||||
|
||||
req, err := http.NewRequest(method, url, nil)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
// req, err := http.NewRequest(method, url, nil)
|
||||
// if err != nil {
|
||||
// return "", err
|
||||
// }
|
||||
|
||||
dialer, err := proxy.SOCKS5("tcp", "127.0.0.1:12334", nil, proxy.Direct)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
// dialer, err := proxy.SOCKS5("tcp", "127.0.0.1:12334", nil, proxy.Direct)
|
||||
// if err != nil {
|
||||
// return "", err
|
||||
// }
|
||||
|
||||
transport := &http.Transport{
|
||||
Dial: dialer.Dial,
|
||||
}
|
||||
// transport := &http.Transport{
|
||||
// Dial: dialer.Dial,
|
||||
// }
|
||||
|
||||
client := &http.Client{
|
||||
Transport: transport,
|
||||
Timeout: timeout,
|
||||
}
|
||||
// client := &http.Client{
|
||||
// Transport: transport,
|
||||
// Timeout: timeout,
|
||||
// }
|
||||
|
||||
resp, err := client.Do(req)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
// resp, err := client.Do(req)
|
||||
// if err != nil {
|
||||
// return "", err
|
||||
// }
|
||||
// defer resp.Body.Close()
|
||||
|
||||
if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusNoContent {
|
||||
return "", fmt.Errorf("request failed with status code: %d", resp.StatusCode)
|
||||
}
|
||||
// if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusNoContent {
|
||||
// return "", fmt.Errorf("request failed with status code: %d", resp.StatusCode)
|
||||
// }
|
||||
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
// body, err := io.ReadAll(resp.Body)
|
||||
// if err != nil {
|
||||
// return "", err
|
||||
// }
|
||||
|
||||
if body == nil {
|
||||
return "", fmt.Errorf("empty body")
|
||||
}
|
||||
// if body == nil {
|
||||
// return "", fmt.Errorf("empty body")
|
||||
// }
|
||||
|
||||
return string(body), nil
|
||||
}
|
||||
// return string(body), nil
|
||||
// }
|
||||
|
||||
func Ping() int {
|
||||
startTime := time.Now()
|
||||
_, err := ContentFromURL("HEAD", "https://cp.cloudflare.com", 4*time.Second)
|
||||
if err != nil {
|
||||
return -1
|
||||
}
|
||||
duration := time.Since(startTime)
|
||||
return int(duration.Milliseconds())
|
||||
}
|
||||
// func Ping() int {
|
||||
// startTime := time.Now()
|
||||
// _, err := ContentFromURL("HEAD", "https://cp.cloudflare.com", 4*time.Second)
|
||||
// if err != nil {
|
||||
// return -1
|
||||
// }
|
||||
// duration := time.Since(startTime)
|
||||
// return int(duration.Milliseconds())
|
||||
// }
|
||||
|
||||
Reference in New Issue
Block a user