public static bool CheckResponseEmail(string email) { email = email.Replace("@mailinator.com", ""); PostResult result = WebUtil.GetPage("http://mailinator.com/maildir.jsp", "http://mailinator.com/", PostRequest.PostTypeEnum.Get, "email=" + email + "&x=0&y=0"); string webContent = result.ResponseString; if (webContent.Contains("*****@*****.**") == false) { return(false); } Regex re = new Regex(@"<tr><td bgcolor=#EEEEFF><b>[email protected]</b></td><td bgcolor=#EEEEFF align=center><a href=/displayemail.jsp\?(email=" + email + "&msgid=[0-9]+)>Inscription à Ragnarok Online</a></td></tr>"); Match m = re.Match(webContent); if (m.Success == false) { return(false); } string linkParam = m.Groups[1].Captures[0].Value.Trim(); result = WebUtil.GetPage("http://mailinator.com/displayemail.jsp", "http://mailinator.com/", PostRequest.PostTypeEnum.Get, linkParam); webContent = result.ResponseString; Regex reValidation = new Regex(@"Pour jouer à Ragnarok Online, vous devez maintenant valider votre compte en cliquant sur le lien suivant: <a href='http://www.ragnarokonline.fr/site/pad/accConfirm.php\?(id=[0-9]+&cc=[^']+)' rel='nofollow' target='_blank'>VALIDER </a>"); Match mValidation = reValidation.Match(webContent); if (mValidation.Success == false) { // Badly.. we got the correct E-Mail response, but cant find the link to validate? // Should error here.. mabye FRO changed the Text return(false); } string validationParam = mValidation.Groups[1].Captures[0].Value.Trim(); result = WebUtil.GetPage("http://www.ragnarokonline.fr/site/pad/accConfirm.php", "http://mailinator.com/", PostRequest.PostTypeEnum.Get, validationParam); webContent = result.ResponseString; return(true); }
public static string createMail(int level) { string email = ""; if (level >= 10) { return(""); } string emailName = GetRandomString(); PostResult result = WebUtil.GetPage("http://mailinator.com/maildir.jsp", "http://www.guerillamail.org/", PostRequest.PostTypeEnum.Get, "email=" + emailName + "&x=0&y=0"); string webContent = result.ResponseString; // Check email.. if (webContent.Contains("Inbox for: " + emailName) == false) { return(createMail(level + 1)); } email = emailName + "@mailinator.com"; return(email); }
/// <summary> /// Posts data to a specified url. Note that this assumes that you have already url encoded the post data. /// </summary> /// <param name="postData">The data to post.</param> /// <param name="url">the url to post to.</param> /// <returns>Returns the result of the post.</returns> private PostResult PostData(string url, string postData) { PostResult result = new PostResult(); HttpWebRequest request = null; if (WebInfo == null) { throw new ArgumentException("WebInfo cant be <null>!", "WebInfo"); } if (mType == PostTypeEnum.Get & postData.Length > 0) { url += "?" + postData; } Uri uri = new Uri(url); request = (HttpWebRequest)WebRequest.Create(uri); request.Credentials = CredentialCache.DefaultCredentials; request.CookieContainer = new CookieContainer(); if (mIgnoreCookies == false) { request.CookieContainer.GetCookies(uri); } if (Cookies != null) { request.CookieContainer.Add(this.Cookies); } if (Proxy != null) { request.Proxy = Proxy; } if (mTimeout > 0) { request.Timeout = mTimeout; } request.UserAgent = WebInfo.Useragent; request.Accept = WebInfo.RequestAccept; request.Headers.Add(HttpRequestHeader.AcceptLanguage, WebInfo.AcceptLanguage); request.Headers.Add(HttpRequestHeader.AcceptEncoding, WebInfo.AcceptEncoding); request.Headers.Add(HttpRequestHeader.AcceptCharset, WebInfo.AcceptCharset); request.Headers.Add(HttpRequestHeader.KeepAlive, WebInfo.KeepAlive.ToString()); request.Referer = mUrlReferer; request.KeepAlive = true; System.Net.ServicePointManager.Expect100Continue = false; // sonst error request.Method = mType.ToString().ToUpper(); if (mType == PostTypeEnum.Post) { request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = postData.Length; try { if (postData.Length > 0) { Stream writeStream = request.GetRequestStream(); UTF8Encoding encoding = new UTF8Encoding(); byte[] bytes = encoding.GetBytes(postData); writeStream.Write(bytes, 0, bytes.Length); writeStream.Close(); } } catch { } } try { using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { result.Cookies = response.Cookies; using (Stream responseStream = response.GetResponseStream()) { using (StreamReader readStream = new StreamReader(responseStream, Encoding.Default)) { result.ResponseString = readStream.ReadToEnd(); if (response.ContentEncoding == "gzip") { result.ResponseString = Util.GZipDecompress(result.ResponseString); } else if (response.ContentEncoding == "deflate") { throw new NotSupportedException("Deflate-compression income - not yet finished :/"); } } } } } catch (Exception e) { System.Diagnostics.Debug.WriteLine(e); result.ResponseString = string.Empty; } return(result); }
/// <summary> /// Posts data to a specified url. Note that this assumes that you have already url encoded the post data. /// </summary> /// <param name="postData">The data to post.</param> /// <param name="url">the url to post to.</param> /// <returns>Returns the result of the post.</returns> private PostResult PostData( string url, string postData ) { PostResult result = new PostResult(); HttpWebRequest request = null; if( WebInfo == null ) throw new ArgumentException( "WebInfo cant be <null>!", "WebInfo" ); if( mType == PostTypeEnum.Get & postData.Length > 0 ) url += "?" + postData; Uri uri = new Uri( url ); request = (HttpWebRequest)WebRequest.Create( uri ); request.Credentials = CredentialCache.DefaultCredentials; request.CookieContainer = new CookieContainer(); if( mIgnoreCookies == false ) request.CookieContainer.GetCookies( uri ); if( Cookies != null ) request.CookieContainer.Add( this.Cookies ); if( Proxy != null ) request.Proxy = Proxy; if( mTimeout > 0 ) request.Timeout = mTimeout; request.UserAgent = WebInfo.Useragent; request.Accept = WebInfo.RequestAccept; request.Headers.Add( HttpRequestHeader.AcceptLanguage, WebInfo.AcceptLanguage ); request.Headers.Add( HttpRequestHeader.AcceptEncoding, WebInfo.AcceptEncoding ); request.Headers.Add( HttpRequestHeader.AcceptCharset, WebInfo.AcceptCharset ); request.Headers.Add( HttpRequestHeader.KeepAlive, WebInfo.KeepAlive.ToString() ); request.Referer = mUrlReferer; request.KeepAlive = true; System.Net.ServicePointManager.Expect100Continue = false; // sonst error request.Method = mType.ToString().ToUpper(); if( mType == PostTypeEnum.Post ) { request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = postData.Length; try { if( postData.Length > 0 ) { Stream writeStream = request.GetRequestStream(); UTF8Encoding encoding = new UTF8Encoding(); byte[] bytes = encoding.GetBytes( postData ); writeStream.Write( bytes, 0, bytes.Length ); writeStream.Close(); } } catch { } } try { using( HttpWebResponse response = (HttpWebResponse)request.GetResponse() ) { result.Cookies = response.Cookies; using( Stream responseStream = response.GetResponseStream() ) { using( StreamReader readStream = new StreamReader( responseStream, Encoding.Default ) ) { result.ResponseString = readStream.ReadToEnd(); if( response.ContentEncoding == "gzip" ) result.ResponseString = Util.GZipDecompress( result.ResponseString ); else if( response.ContentEncoding == "deflate" ) throw new NotSupportedException( "Deflate-compression income - not yet finished :/" ); } } } } catch( Exception e ) { System.Diagnostics.Debug.WriteLine( e ); result.ResponseString = string.Empty; } return result; }