def http_parse_query(meg): http=BinMap(); regex = re.compile("(GET|POST)\s+(.+?)\s+(.+?)\r\n", re.IGNORECASE) out=regex.findall(meg) if len(out)>0: http.setvalue("HTTP_METHOD", out[0][0]) http.setvalue("HTTP_QUERY_STRING", out[0][1]) http.setvalue("HTTP_PROTOCOL", out[0][2]) else: http.setvalue("HTTP_METHOD", "") http.setvalue("HTTP_QUERY_STRING", "") http.setvalue("HTTP_PROTOCOL", "") http_parse_query_item(meg,"Accept:\s+(.+?)\r\n",http,"HTTP_ACCEPT") http_parse_query_item(meg,"Accept-Language:\s+(.+?)\r\n",http,"HTTP_ACCEPT_LANGUAGE") http_parse_query_item(meg,"User-Agent:\s+(.+?)\r\n",http,"HTTP_USER_AGENT") http_parse_query_item(meg,"Content-Type:\s+(.+?)\r\n",http,"HTTP_CONTENT_TYPE") http_parse_query_item(meg,"Accept-Encoding:\s+(.+?)\r\n",http,"HTTP_ACCEPT_ENCODING") http_parse_query_item(meg,"Host:\s+(.+?)\r\n",http,"HTTP_HOST") http_parse_query_item(meg,"Connection:\s+(.+?)\r\n",http,"HTTP_CONNECTION") http_parse_query_item(meg,"Content-Length:\s+(.+?)\r\n",http,"HTTP_CONNECTION_LENGTH") http_parse_query_item(meg,"Cache-Control:\s+(.+?)\r\n",http,"HTTP_CACHE_CONTROL") regex = re.compile("\r\n\r\n(.+)", re.IGNORECASE) out=regex.findall(meg) if len(out)>0: http.setvalue("HTTP_POST_VARS", out[0]) else: http.setvalue("HTTP_POST_VARS", "") return http