Ответы пользователя по тегу Компьютерные сети
  • Custom DNS Resolver для http.Client возможно?

    david_mz
    @david_mz
    веб-разработчик: php, javascript, go
    Никогда подобного не делал, но если у вас уже есть код резолвера (который по имени выдаёт IP), то особых проблем не видно…

    Как написано в https://golang.org/pkg/net/http/, “For control over proxies, TLS configuration, keep-alives, compression, and other settings, create a Transport”.

    В вашем случае нужно создать экземпяр http.Transport с вашей собственной функцией Dial:
    Dial func(network, addr string) (net.Conn, error)

    В этой функции вы, получив хост в параметре “addr”, сами его резолвите, а потом вызываете стандартный net.Dial, но уже не с хостом, а с отрезолвленным IP-адресом. А потом делаете http.Client c этим транспортом:
    client := &http.Client{Transport: tr}
    и используете его как обычно.
    Ответ написан