Написать класс «TCP прокси подключения HTTP/HTTPS»
Цена договорная
Необходимо создать класс с «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`);
Один класс должен использоваться для
- Парсинга сайта с прокси-серверами (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`);
Отзывы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.