$sTitle = _HTTPRead('http://autoit-script.ru', '', '(?i)<title>(.*?)</title>')
ConsoleWrite($sTitle & @CRLF)
Func _HTTPRead($sURL, $sReferer = '', $sStopPattern = '', $fUTF8 = True, $fStripHeader = True)
Local $aURL, $iOpt, $sName_To_IP, $iSocket = -1, $sCommand = '', $sRecv = ''
$aURL = StringRegExp($sURL, '^(?:[^:]+://)?([^/]+)(/?.+$)?', 3)
Switch UBound($aURL)
Case 0
Return SetError(-1, 0, '')
Case 1
ReDim $aURL[2]
$aURL[1] = '/'
EndSwitch
$iOpt = Opt('TCPTimeout', 5000)
TCPStartup()
$iSocket = TCPConnect(TCPNameToIP($aURL[0]), 80)
If $iSocket = -1 Then
Opt('TCPTimeout', $iOpt)
TCPShutdown()
Return SetError(1, 0, '')
EndIf
$sCommand &= 'GET ' & $aURL[1] & ' HTTP/1.0' & @CRLF
$sCommand &= 'Host: ' & $aURL[0] & @CRLF
$sCommand &= 'User-Agent: AutoIt/' & @AutoItVersion & ' (Windows 6.1; en-US)' & @CRLF
$sCommand &= 'Referrer: ' & $sReferer & @CRLF
$sCommand &= 'Connection: close' & @CRLF & @CRLF
If TCPSend($iSocket, $sCommand) > 0 Then
While 1
$sRecv &= TCPRecv($iSocket, 256)
If @error Or ($sStopPattern And StringRegExp($sRecv, $sStopPattern)) Then
ExitLoop
EndIf
WEnd
EndIf
Opt('TCPTimeout', $iOpt)
TCPCloseSocket($iSocket)
TCPShutdown()
If $sRecv == '' Then
Return SetError(2, 0, '')
EndIf
If $fStripHeader Then
$sRecv = StringTrimLeft($sRecv, StringInStr($sRecv, @CRLF & @CRLF, 2) + 3)
EndIf
If $fUTF8 Then
$sRecv = BinaryToString(StringToBinary($sRecv), 4)
EndIf
If $sStopPattern And StringRegExp($sRecv, $sStopPattern) Then
Return StringRegExp($sRecv, $sStopPattern, 3)[0]
EndIf
Return $sRecv
EndFunc