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
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

init.go 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package telegram
  2. import (
  3. "context"
  4. "net"
  5. )
  6. type preferIP uint8
  7. const (
  8. preferIPOnlyIPv4 preferIP = iota
  9. preferIPOnlyIPv6
  10. preferIPPreferIPv4
  11. preferIPPreferIPv6
  12. )
  13. type tgAddr struct {
  14. network string
  15. address string
  16. }
  17. // https://github.com/telegramdesktop/tdesktop/blob/master/Telegram/SourceFiles/mtproto/mtproto_dc_options.cpp#L30
  18. var (
  19. productionV4Addresses = [][]tgAddr{
  20. { // dc1
  21. {network: "tcp4", address: "149.154.175.50:443"},
  22. },
  23. { // dc2
  24. {network: "tcp4", address: "149.154.167.51:443"},
  25. {network: "tcp4", address: "95.161.76.100:443"},
  26. },
  27. { // dc3
  28. {network: "tcp4", address: "149.154.175.100:443"},
  29. },
  30. { // dc4
  31. {network: "tcp4", address: "149.154.167.91:443"},
  32. },
  33. { // dc5
  34. {network: "tcp4", address: "149.154.171.5:443"},
  35. },
  36. }
  37. productionV6Addresses = [][]tgAddr{
  38. { // dc1
  39. {network: "tcp6", address: "[2001:b28:f23d:f001::a]:443"},
  40. },
  41. { // dc2
  42. {network: "tcp6", address: "[2001:67c:04e8:f002::a]:443"},
  43. },
  44. { // dc3
  45. {network: "tcp6", address: "[2001:b28:f23d:f003::a]:443"},
  46. },
  47. { // dc4
  48. {network: "tcp6", address: "[2001:67c:04e8:f004::a]:443"},
  49. },
  50. { // dc5
  51. {network: "tcp6", address: "[2001:b28:f23f:f005::a]:443"},
  52. },
  53. }
  54. testV4Addresses = [][]tgAddr{
  55. { // dc1
  56. {network: "tcp4", address: "149.154.175.10:443"},
  57. },
  58. { // dc2
  59. {network: "tcp4", address: "149.154.167.40:443"},
  60. },
  61. { // dc3
  62. {network: "tcp4", address: "149.154.175.117:443"},
  63. },
  64. }
  65. testV6Addresses = [][]tgAddr{
  66. { // dc1
  67. {network: "tcp6", address: "[2001:b28:f23d:f001::e]:443"},
  68. },
  69. { // dc2
  70. {network: "tcp6", address: "[2001:67c:04e8:f002::e]:443"},
  71. },
  72. { // dc3
  73. {network: "tcp6", address: "[2001:b28:f23d:f003::e]:443"},
  74. },
  75. }
  76. )
  77. type Dialer interface {
  78. DialContext(ctx context.Context, network, address string) (net.Conn, error)
  79. }