l2.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package main
  2. import (
  3. "fmt"
  4. tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
  5. "github.com/joho/godotenv"
  6. "os"
  7. "log"
  8. "net/http"
  9. "net/url"
  10. "encoding/json"
  11. "crypto/tls"
  12. "time"
  13. )
  14. const (
  15. var Step string
  16. var Proxy string
  17. )
  18. type DataIP struct {
  19. IP string `json:"query"`
  20. Country string `json:"country"`
  21. }
  22. func ProxyCheck(proxy) (bool, string, string) {
  23. proxyurl, err := url.Parse(proxy)
  24. if err != nil {
  25. fmt.Println(err)
  26. }
  27. transport := &http.Transport{
  28. TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
  29. Proxy: http.ProxyURL(proxyurl),
  30. }
  31. client := &http.Client{
  32. Transport: transport,
  33. Timeout: 20 * time.Second,
  34. }
  35. req, err := http.NewRequest("GET", "http://ip-api.com", nil)
  36. if err != nil {
  37. fmt.Println(err)
  38. }
  39. resp, err := client.Do(req)
  40. if err != nil {
  41. return false, "", ""
  42. fmt.Println(err)
  43. }
  44. defer resp.Body.Close
  45. var data DataIP
  46. err := json.NewDecoder(resp.Body).Decode(&data)
  47. if err != nil {
  48. fmt.Println(err)
  49. }
  50. return true, data.IP, data.Country
  51. }
  52. func main() {
  53. err := godotenv.Load()
  54. if err != nil {
  55. log.Fatalf("%v\n", err)
  56. }
  57. tg := os.Getenv("TG_TOKEN")
  58. bot, err := tgbotapi.NewBotAPI(tg)
  59. if err != nil {
  60. log.Fatalf("%v\n", err)
  61. }
  62. bot.Debug = true
  63. u := tgbotapi.NewUpdate(0)
  64. u.Timeout = 60
  65. updates := bot.GetUpdatesChan(u)
  66. for update := range updates {}