37.1K subscribers
1.46K photos
34 videos
5 files
1.62K links
加入频道
👣 Обход ограничений скорости по IP с помощью ротации IP-адресов при парсинге.

Создание собственного локального прокси с помощью Tor.
Пример в изображении 1.

Использование коммерческого сервиса прокси-пулов SmartProxy.
Пример в изображении 2.

Создание собственного HTTP-клиента с прокси-функцией.
Пример в изображении 3.

После настройки Tor-клиента мы можем проверить IP-адрес запроса. Затем мы вызываем NewIP, чтобы изменить IP-адрес нашего клиента.
Изображение 4.

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🧑‍💻 PLOW

Plow инструмент, который пред­назна­чен для наг­рузоч­ного тес­тирова­ния HTTP-сер­веров.

Он осно­ван на Go-биб­лиоте­ке fasthttp, которая до десяти раз быс­трее стан­дар­тной реали­зации, что дела­ет его каким‑то ано­маль­но быс­трым.

Plow может отда­вать ста­тис­тику в реаль­ном вре­мени не толь­ко в окне тер­минала, но и в бра­узе­ре (по стан­дарту встро­енный сер­вер дос­тупен на 18888-м пор­те).

За­пуск воз­можен из Docker или уста­нов­кой из исходни­ков:

go install github.com/six-ddc/plow@latest
plow <args>

Аль­тер­натива:

docker run --rm --net=host ghcr.io/six-ddc/plow <args>

Ар­гумен­ты в целом ничего необыч­ного собой не пред­став­ляют: тут у нас стан­дар­тная для таких прог­рамм нас­трой­ка количес­тва потоков (-c), жела­емо­го количес­тва зап­росов (-n), вре­мени тес­та (-d 30s или -d 5m, нап­ример) и HTTP-метода (--method="GET"). Про дру­гие парамет­ры мож­но под­робно про­читать в справ­ке прог­раммы (--help). Цель переда­ется без спе­циаль­ных парамет­ров.

Github

@Golang_google
Golang бросает панику при закрытии уже закрытого канала. Есть несколько способов, чтобы избежать такого рода паники.

Каждый вариант кода инкапсулирует struct и используется как интерфейс (картинка 1).

1) Panic
В примемер реализован интерфейс Signal:
(картинка 2)

Второй вызов Close() вызывает панику.

2) Простой select является потокобезопасным вариантом.
(картинка 3)

3) Панику можно перехватить с помощью функции recover() в defer
(картинка 4).

4) sync.Once - еще один способ перехвата. Он вызывает close() только один раз и это элегантный способ обработки закрытия нескольких каналов (картинка 5).

5)В Golang 1.21 появилась функция sync.OnceFunc, которая лучше подходит для этого случая использования (картинка 6).

Можно также использовать sync.Mutex, но он не является оптимальным, как sync.Once, поскольку всегда использует блокировку и разблокировку.

6) context.WithCancel - это еще один вариант, чтобы избежать панику (картинка 7).

Напишите свой вариант кода в комментариях👇

@Golang_google
👣 Acra - пакет безопасности баз данных на Go для защиты конфиденциальных и персональных данных.

AcraServer работает как прокси-сервер шифрования/дешифрования с базами данных SQL.

Github
Документация
Примеры

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉 Go 1.20.6 and 1.19.11 are released!

🔐 Безопасность: Includes security fixes for CVE-2023-29406 and Go issue https://go.dev/issue/60374

📢 Анонс: https://groups.google.com/g/golang-announce/c/2q13H6LEEx0

📦 Загрузить: https://go.dev/dl/#go1.20.6

@Golang_google
👣 ↔️ 🖥 Pygolo - embed or extend the Python interpreter with Go

Этот проект поможет вам преодолеть границу Python-Go: расширить возможности Python с помощью Go и наоборот.

Github
Как использовать

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 bleve

Удобный инструмент анализа текста для векторизации и поиска слов на основе векторов.

$ go install github.com/blevesearch/bleve/v2/cmd/bleve@latest

Github

@Golang_google
📌 Рефакторинг кода Go для тестопригодности: возможности интерфейсов

Модульное тестирование — неотъемлемая часть процесса разработки ПО, которой обеспечивается корректное функционирование отдельных компонентов или модулей кода.

Пирамида тестирования

Тестирование ПО осмысливается в виде метафоры — пирамиды тестирования.

Вот основные ее компоненты:

1. Модульные тесты.
2. Интеграционные тесты.
3. Сквозные тесты.

Читать

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Iris Web Framework

Iris веб-фреймворке на Go, который предоставялет набор инструментов для быстрой и легкой разработки веб-приложений. Репозиторий содержит множество полезных примеров с кодом.

package main

import "github.com/kataras/iris/v12"

func main() {
app := iris.New()
app.Use(iris.Compression)

app.Get("/", func(ctx iris.Context) {
ctx.HTML("Hello <strong>%s</strong>!", "World")
})

app.Listen(":8080")
}


На картинке привден пример использования апи hCAPTCHA с Iris.

hCAPTCHA - это сервис, защищающий сайты от ботов и спама. Использование hCAPTCHA позволяет обеспечить доступ к сайту только реальным пользователям и предотвратить автоматические атаки.

Github
hCAPTCHA пример

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Gluetun VPN client

VPN-клиент в контейнере Docker для нескольких провайдеров VPN, написанный на Golang и использующий OpenVPN или Wireguard, DNS через TLS, с несколькими встроенными прокси-серверами.

Поддерживает: AirVPN, Cyberghost, ExpressVPN, FastestVPN, HideMyAss, IPVanish, IVPN, Mullvad, NordVPN, Perfect Privacy, Privado, Private Internet Access, PrivateVPN, ProtonVPN, PureVPN, SlickVPN, Surfshark, TorGuard, VPNSecure, VPNUnlimited, Vyprvpn, WeVPN, Windscribe
Поддерживает OpenVPN для всех перечисленных провайдеров
Поддерживает Wireguard
Позволяет блокировать DNS вредоносных/рекламных/ имен хостов и IP-адресов с оперативным обновлением каждые 24 часа
и многое другое.

🖥 Github
🖥 Docker

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM