Highly-opinionated (ex-bullshit-free) MTPROTO proxy for Telegram. If you use v1.0 or upgrade broke you proxy, please read the chapter Version 2
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

init.go 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package dc
  2. import (
  3. "context"
  4. "time"
  5. )
  6. type preferIP uint8
  7. const (
  8. preferIPOnlyIPv4 preferIP = iota
  9. preferIPOnlyIPv6
  10. preferIPPreferIPv4
  11. preferIPPreferIPv6
  12. )
  13. const (
  14. // Default DC to connect to if not sure.
  15. DefaultDC = 2
  16. // How often should we request updates from
  17. // https://core.telegram.org/getProxyConfig
  18. PublicConfigUpdateEach = time.Hour
  19. PublicConfigUpdateURLv4 = "https://core.telegram.org/getProxyConfig"
  20. PublicConfigUpdateURLv6 = "https://core.telegram.org/getProxyConfigV6"
  21. // How often should we extract hosts from Telegram using help.getConfig
  22. // method.
  23. OwnConfigUpdateEach = time.Hour
  24. )
  25. type Logger interface {
  26. Info(msg string)
  27. WarningError(msg string, err error)
  28. }
  29. type Updater interface {
  30. Run(ctx context.Context)
  31. }
  32. // https://github.com/telegramdesktop/tdesktop/blob/master/Telegram/SourceFiles/mtproto/mtproto_dc_options.cpp#L30
  33. var defaultDCAddrSet = dcAddrSet{
  34. v4: map[int][]Addr{
  35. 1: {
  36. {Network: "tcp4", Address: "149.154.175.50:443"},
  37. },
  38. 2: {
  39. {Network: "tcp4", Address: "149.154.167.51:443"},
  40. {Network: "tcp4", Address: "95.161.76.100:443"},
  41. },
  42. 3: {
  43. {Network: "tcp4", Address: "149.154.175.100:443"},
  44. },
  45. 4: {
  46. {Network: "tcp4", Address: "149.154.167.91:443"},
  47. },
  48. 5: {
  49. {Network: "tcp4", Address: "149.154.171.5:443"},
  50. },
  51. 203: {
  52. {Network: "tcp4", Address: "91.105.192.100:443"},
  53. },
  54. },
  55. v6: map[int][]Addr{
  56. 1: {
  57. {Network: "tcp6", Address: "[2001:b28:f23d:f001::a]:443"},
  58. },
  59. 2: {
  60. {Network: "tcp6", Address: "[2001:67c:04e8:f002::a]:443"},
  61. },
  62. 3: {
  63. {Network: "tcp6", Address: "[2001:b28:f23d:f003::a]:443"},
  64. },
  65. 4: {
  66. {Network: "tcp6", Address: "[2001:67c:04e8:f004::a]:443"},
  67. },
  68. 5: {
  69. {Network: "tcp6", Address: "[2001:b28:f23f:f005::a]:443"},
  70. },
  71. 203: {
  72. {Network: "tcp6", Address: "[2a0a:f280:0203:000a:5000:0000:0000:0100]:443"},
  73. },
  74. },
  75. }