Посылка HTTP запросов, используя прокси с авторизацией

Опубликовано: 05.09.2018

видео Посылка HTTP запросов, используя прокси с авторизацией

POST и GET запросы в Delphi | Indy idHTTP

Этот скрипт может быть использован для получения страницы с помощью прокси-серверов с аутентификацией.



Он может послать HTTP-запрос на веб-сервер, используя заданный HTTP-прокси.

Скрипт поддерживает прокси-аутентификации при необходимости.

Лицензия BSD.

Системные требования скрипта:

PHP не младше 5.0 версии.

Исходник скрипта

// API__SHELL_PROXY (INTERFACE) // CLS__SHELL_PROXY (CLASS) interface api__shell_proxy { public static function proxy_isset(); public static function proxy_set( $proxy_host, $proxy_port, $proxy_user = null, $proxy_pass = null ); public static function proxy_get( $url ); } // Based on http://www.php.net/manual/de/function.fopen.php#47224 class cls__shell_proxy implements api__shell_proxy { private static $proxy_host = null; private static $proxy_port = null; private static $proxy_user = null; private static $proxy_pass = null; private static $proxy_timeout = 2; private static $proxy_isset = false; private static $proxy_error_number = null; private static $proxy_error_string = null; public static function proxy_isset(){ return (self::$proxy_isset?true:false); } public static function proxy_set( $proxy_host, $proxy_port, $proxy_user = null, $proxy_pass = null ){ self::proxy_host( $proxy_host ); self::proxy_port( $proxy_port ); self::proxy_user( $proxy_user ); self::proxy_pass( $proxy_pass ); self::$proxy_isset = true; } public static function proxy_get( $url ){ if( $resource_fsock = @fsockopen( self::proxy_host(), self::proxy_port(), self::$proxy_error_number, self::$proxy_error_string, self::$proxy_timeout ) ) { $string_return = ''; fputs( $resource_fsock, "GET ".$url." HTTP/1.0\r\nHost: ".self::proxy_host()."\r\n"); if( self::proxy_user() === null ) { fputs( $resource_fsock, "\r\n" ); } else { fputs( $resource_fsock, "Proxy-Authorization: Basic ".base64_encode( self::proxy_user().':'.self::proxy_pass() ) . "\r\n\r\n"); } while( !feof( $resource_fsock ) ) { $string_return .= fread( $resource_fsock, 4096 ); } fclose( $resource_fsock ); $string_return = substr( $string_return, strpos( $string_return, "\r\n\r\n" ) +4 ); } else { trigger_error( '['.self::$proxy_error_number.'] '.self::$proxy_error_string ); $string_return = null; } return $string_return; } // SET / GET private static function proxy_host( $proxy_name = null ){ if( $proxy_name !== null ) self::$proxy_host = $proxy_name; return self::$proxy_host; } private static function proxy_port( $proxy_port = null ){ if( $proxy_port !== null ) self::$proxy_port = $proxy_port; return self::$proxy_port; } private static function proxy_user( $proxy_user = null ){ if( $proxy_user !== null ) self::$proxy_user = $proxy_user; return self::$proxy_user; } private static function proxy_pass( $proxy_pass = null ){ if( $proxy_pass !== null ) self::$proxy_pass = $proxy_pass; return self::$proxy_pass; } }

Пример использования

// Proxy require_once('shell.proxy.php'); // Some simple example :o) cls__shell_proxy::proxy_set( 'proxy_ip', 'proxy_port' ); var_dump( cls__shell_proxy::proxy_get( 'http://www.google.com' ) ); // or with Basic authentication cls__shell_proxy::proxy_set( 'proxy_ip', 'proxy_port', 'proxy_user', 'proxy_password' ); var_dump( cls__shell_proxy::proxy_get( 'http://www.google.com' ) ); /* Returns: (string) index file of www.google.com */

Скачать архивы


Уроки cURL. Работа с POST-запросами

Читать комментарии (2) Герд Кристиан Кунзе

4511

Комментировать


Python авторизация, логин на сайте.

IRC (Internet Relay Chat)
rss