lionfaggot Posted February 9, 2014 Posted February 9, 2014 expandcollapse popupTCPStartup() Func _Get($host, $page) $gcookie = _getcookie($host) $req = "GET " & $page & " HTTP/1.1" & @CRLF $req &= "Host: " & $host & @CRLF $req &= "User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:27.0) Gecko/20100101 Firefox/27.0" & @CRLF $req &= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF $req &= "Accept-Language: en-US,en;q=0.5" & @CRLF $req &= "Accept-Encoding: deflate" & @CRLF $req &= "Referer: http://www.google.com/" & @CRLF If $gcookie <> -1 Then $req &= $gcookie & @CRLF EndIf $req &= "Connection: close" & @CRLF & @CRLF $socket = TCPConnect(TCPNameToIP($host), 80) If @error Then Return 0 Else TCPSend($socket, $req) If @error Then Return 0 Else Return _httprecv($host, $socket) EndIf EndIf EndFunc ;==>_Get Func _Post($host, $page, $pdat) $gcookie = _getcookie($host) $req = "POST " & $page & " HTTP/1.1" & @CRLF $req &= "Host: " & $host & @CRLF $req &= "User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:27.0) Gecko/20100101 Firefox/27.0" & @CRLF $req &= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF $req &= "Accept-Language: en-US,en;q=0.5" & @CRLF $req &= "Accept-Encoding: deflate" & @CRLF $req &= "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" & @CRLF $req &= "Referer: http://www.google.com/" & @CRLF $req &= "Content-Length: " & StringLen($pdat) & @CRLF If $gcookie <> -1 Then $req &= $gcookie & @CRLF EndIf $req &= "Connection: close" & @CRLF & @CRLF $req &= $pdat & @CRLF $socket = TCPConnect(TCPNameToIP($host), 80) If @error Then Return 0 Else TCPSend($socket, $req) If @error Then Return 0 Else Return _httprecv($host, $socket) EndIf EndIf EndFunc ;==>_Post Func _httprecv($host, $hsock) Local $ret While 1 $data = TCPRecv($hsock, 2048) If @error Then TCPCloseSocket($hsock) ExitLoop Else If $data <> "" Then $ret &= $data If StringInStr($data, "Set-Cookie:") Then DirCreate(@UserProfileDir & "\" & $host & "\") _cookie($host, $ret) EndIf EndIf EndIf WEnd Return $ret EndFunc ;==>_httprecv Func _cookie($host, $retcook) DirCreate(@UserProfileDir & "\" & $host & "\") $array = StringRegExp($retcook, "Set-Cookie: (.+)\r\n", 3) $cookies = "" For $i = 0 To UBound($array) - 1 $cookies = $array[$i] & ";" $csplit = StringSplit($cookies, "=") $cookname = $csplit[1] $cookies = StringRegExpReplace($cookies, "( path| domain| expires)=[^;]+", "") $cookies = StringRegExpReplace($cookies, " HttpOnly", "") $cookies = StringRegExpReplace($cookies, "[;]{2,}", ";") DirCreate(@UserProfileDir & "\" & $host & "\") FileDelete(@UserProfileDir & "\" & $host & "\" & $cookname & ".txt") FileWrite(@UserProfileDir & "\" & $host & "\" & $cookname & ".txt", $cookies) Next EndFunc ;==>_cookie Func _getcookie($host) Local $noret = 0 $cookrr = "Cookie:" $search = FileFindFirstFile(@UserProfileDir & "\" & $host & "\*.txt") If @error Then Return -1 $noret = 1 EndIf If $noret <> 1 Then While 1 $file = FileFindNextFile($search) If @error Then Return $cookrr ExitLoop Else $cookrr &= " " & FileRead(@UserProfileDir & "\" & $host & "\" & $file) EndIf WEnd EndIf $noret = 0 EndFunc ;==>_getcookie Func _URLEncode($toEncode, $encodeType = 0) Local $strHex = "", $iDec Local $aryChar = StringSplit($toEncode, "") If $encodeType = 1 Then;;Encode EVERYTHING For $i = 1 To $aryChar[0] $strHex = $strHex & "%" & Hex(Asc($aryChar[$i]), 2) Next Return $strHex ElseIf $encodeType = 0 Then;;Practical Encoding For $i = 1 To $aryChar[0] $iDec = Asc($aryChar[$i]) If $iDec <= 32 Or $iDec = 37 Then $strHex = $strHex & "%" & Hex($iDec, 2) Else $strHex = $strHex & $aryChar[$i] EndIf Next Return $strHex ElseIf $encodeType = 2 Then;;RFC 1738 Encoding For $i = 1 To $aryChar[0] If Not StringInStr("$-_.+!*'(),;/?:@=&abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890", $aryChar[$i]) Then $strHex = $strHex & "%" & Hex(Asc($aryChar[$i]), 2) Else $strHex = $strHex & $aryChar[$i] EndIf Next Return $strHex EndIf EndFunc ;==>_URLEncode _Get("www.yahoo.com", "/") - Get _Post("www.somesite.com", "/login.php", "user=lol&pass=lol") - Post both return a full http response from the host _URLEncode("somestring") ---------------- hopefully some folks will find this useful, it requires less code to use than the HTTP UDF and autohandles cookies. enjoy!
JohnOne Posted February 9, 2014 Posted February 9, 2014 (edited) Neither reurn anything for me. Win 7 32. EDIT: well 0 Edited February 9, 2014 by JohnOne AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans.
lionfaggot Posted February 9, 2014 Author Posted February 9, 2014 whats the website in question? this will not work on https at all, only http
JohnOne Posted February 9, 2014 Posted February 9, 2014 I take it back, I put function call before TCPStart. Sorry. AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans.
lionfaggot Posted February 9, 2014 Author Posted February 9, 2014 this is probably the most complete set of http functions. will be updating soon to include header stripping to return body and headers seperately. also, im noting that lots of websites these days set the cookie using javascript. seems like a daunting task to take on. however i think it is necessary, i know quite a bit about javascript but im not sure how to tackle interpreting cookie events from it. any input appreciated!
nullschritt Posted February 10, 2014 Posted February 10, 2014 (edited) this is probably the most complete set of http functions. will be updating soon to include header stripping to return body and headers seperately. also, im noting that lots of websites these days set the cookie using javascript. seems like a daunting task to take on. however i think it is necessary, i know quite a bit about javascript but im not sure how to tackle interpreting cookie events from it. any input appreciated! You can't track javascript events(at least not without making a browser window), what you have to do is interpret the javascript, the same way the browser does. Edited February 10, 2014 by nullschritt
lionfaggot Posted February 11, 2014 Author Posted February 11, 2014 there are interpretation libraries for java if im not mistaken? other than ie obviously,
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now