Difference between revisions of "IPConnection.Create"
1>Admin (Created page with "{{infobox function |name=Create |object=Объект IP |caption=Создание неактивного объекта |type=1 |status=2 |db=0 |visual=0}} {{HeadLinks| *...") |
m (1 revision imported) |
(No difference)
|
Latest revision as of 18:07, 20 November 2021
Create (Создание неактивного объекта) | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция создает неактивный объект соединения, который затем можно использовать, к примеру, для задания прокси сервера и дальнейшего соединения с удаленным сервером.
Синтаксис
IPConnection.Create():<Новое неактивное соединение (IPOBJECT)>
Возвращаемое значение
Возвращается новый неактивный объект IP.
Примеры
//Измененный пример из статьи Connect показывает, как можно осуществить загрузку веб-страницы по ее адресу посредством SOCKS5 прокси сервера. //Для загрузки по протоколу https требуется указание пути к библиотекам OpenSSL или LibreSSL. Function LoadPage(URL) bHTTPs:=pos("https://",Lowercase(URL)); If pos("//",URL)>0 Then tearStr(URL,"//"); EndIf; СтрДоб:=URL; URL:=tearStr(СтрДоб,"/"); //URL может содержать название параграфа СтрДоб:=TearStr(СтрДоб,"#"); For i:=1 to 3 Do //Создаем неактивное соединение tcp:=IPConnection.Create(); //Задаем прокси сервер для текущего соединения tcp.UseProxy("192.168.1.1:8080","SOCKS5","User","test123"); if bHTTPs Then tcp.Connect(URL+?(Pos(":",URL)+Pos("=",URL)=0,"=443"),1); Else tcp.Connect(URL+?(Pos(":",URL)+Pos("=",URL)=0,"=80")); EndIf; if tcp.IsConnected Then Break; EndIf; EndDo; if not tcp.IsConnected Then Message("Could not connect: "+URL,"!"); Exit; EndIf; СтрДоб:="/"+СтрДоб; if bHTTPs then //tcp.InitEncryption("LibreSSL","C:\LibreSSL255\libtls-15.dll"); tcp.InitEncryption("OpenSSL","C:\OpenSSL111e\libssl-1_1.dll"); endif; tcp.HTTPSetOperation("GET "+СтрДоб+" HTTP/1.0"); tcp.HTTPSetHeaderField("Host",tcp.HTTPPunycodeEncode(URL)); tcp.HTTPSetHeaderField("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); tcp.HTTPSetHeaderField("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); tcp.HTTPSetHeaderField("Accept-Language","en"); tcp.HTTPSetHeaderField("Connection","Close"); Стр:=""; Try If tcp.HTTPSendAndReceive Then Стр:=tcp.HTTPBodyAsString; If _And(Pos(_NEWLINE,Стр)=0,Pos(Chr(10),Стр)>0) Then Стр:=Replace(Стр,Chr(10),_NEWLINE); EndIf; EndIf; Except Message("Could not load: "+URL,"!"); EndTry; Exit Стр; EndFunction s:=LoadPage("https://en.wikipedia.org/wiki/Main_Page"); Message(s);