Здравствуйте друзья! В этой статье я хочу, немного рассказать вам об основах работы с прокси сервером в Python.
Для этого мы реализуем примитивный интерфейс на нашем любимом Питоне.
Вход с использованием прокси означает — вход на сайт под ненастоящим адресом.
Я уверен вы знаете где использовать данный метод!
Моя задача предоставить инструмент.
Цель нашей программы направлять все запросы конкретного приложения через прокси сервер?
Прокси поддерживает HTTP, HTTPS, SOCKS для подключения
Использовать будем модуль socks.
Ниже мы импортировали модуль и определили функцию, которая содержит заголовки запроса к серверу.
import socks
В нашей функции "headers", мы выполнили конкатенциию строк с помощью встроенных функций "+=".
Таким образом, мы получаем одну новую строку, содержащую все заголовки готовые к отправке на сервер.
def headers(): # Socket headers send metod...
headers = ""
headers += "GET /ip HTTP/1.1\r\n"
headers += "Host: httpbin.org\r\n"
headers += "User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:82.0) Gecko/20100101 Firefox/82.0\r\n"
headers += "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\n"
headers += "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3\r\n"
headers += "Accept-Encoding: gzip, deflate\r\n"
headers += "Connection: keep-alive\r\n"
headers += "Upgrade-Insecure-Requests: 1\r\n"
headers += "Cache-Control: max-age=0\r\n\r\n"
return headers.encode()
Переходим к основной части программы.
Функция "connect" будет принимать два параметра "ipaddress" и "ipport".
def connect(ipaddress, ipport): # Check proxy metod...
try:
#Создаем соединение с сокетом
c = socks.socksocket()
#Устанавливаем адрес через который мы будем посылать наши запросы
c.set_proxy(socks.SOCKS5, ipaddress, int(ipport))
#Подключаемся к нашей цели
c.connect(("httpbin.org", 80))
#Посылаем заголовки на сервер
c.send(headers())
#Получаем ответ от сервера и выводим в консоль
response = c.recv(4096).decode("iso-8859-1")
print(response)
except Exception as error:
print(error)
#Адрес работоспособного сервера через который вы планируете направлять трафик
ipaddress = "5.189.130.21"
ipport = 1080
#Вызываем функцию передаем в нее параметры
connect(ipaddress, ipport)
Сервис httpbin.org вернул адрес с которого был запрос, это адрес прокси сервера.
Теперь все запросы приложения замаскированы.
Надеюсь, данная информация будет вам полезна. Желаю чистого кода!
vk.com/@mcodeer-python-socks-globalnaya-maskirovka