Написать класс «TCP прокси подключения HTTP/HTTPS»

Цена договорная
01 октября 2019, 00:17 • 2 отклика • 44 просмотра
Необходимо создать класс с «extends DBConnection», подключающий соединение с БД MySQL.

Один класс должен использоваться для
- Парсинга сайта с прокси-серверами (HTML/JSON) и заполнения БД
- Если адреса в БД нет, добавляем
- Если адрес в БД есть
- Если больше недоступен — удаляем
- Если доступен — обновляем инфу по всем полям
- Подключение к нужному URL
- Необходимо сделать критерий отбора самого быстрого прокси-сервера из списка в таблице БД.
- Параметры
- Обязательные:
- Тип предпочитаемого прокси: HTTP/HTTPS
- URL запрашиваемой страницы без HTTP/HTTPS
- Не обязательные:
- Кастомный User-Agent




1. PHP class.Производит из таблицы proxy_list выборку самого свежего и быстрого сервера для последующего подключения.
2. Пример функции подключения с помощью прокси:public function getContentProxy($url)
{
$proxy_server; // айпи-адрес прокси-сервера.
$proxy_port; // порт прокси-сервера.

$aContext =
[
'http' =>
[
'proxy' => 'tcp://'.$proxy_address.':'.$proxy_port,
'request_fulluri' => true,
'method'=>"GET",
'header'=>"Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3\r\n" .
"Referer: https://site-to-open.example/\r\n».
"Cookie: foo=bar\r\n" .
"Cookie: foo=bar\r\n" .
"User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:66.0) Gecko/20100101 Firefox/66.0\r\n"
],
];
$cxContext = stream_context_create($aContext);
$searchResult = file_get_contents($url, false, $cxContext);

return $searchResult;
}






-- Структура таблицы `proxy_list`
--

CREATE TABLE IF NOT EXISTS `proxy_list` (
`ip` varchar(15) NOT NULL,
`port` int(10) NOT NULL,
`date_update` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`ping` int(10) NOT NULL COMMENT 'В миллисекундах',
`type` enum('HTTP','HTTPS') NOT NULL,
`uptime` time NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


-- Индексы таблицы `proxy_list`
--
ALTER TABLE `proxy_list`
ADD PRIMARY KEY (`ip`), ADD KEY `date_update` (`date_update`);
Отзывы
R50 b83dbc4bbaf8ab8df7424c8fda2a9424
Фрилансер
 
4 года назад