Advertisement
Guest User

Untitled

a guest
Jun 12th, 2017
1,186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.98 KB | None | 0 0
  1. using System;
  2. using System.Net;
  3. using System.Linq;
  4.  
  5. namespace NEW_FB_Api
  6. {
  7.     public class Account
  8.     {
  9.         private bool debug = false;
  10.  
  11.         public Account(bool debug)
  12.         {
  13.             this.debug = debug;
  14.         }
  15.  
  16.         private Helpers helpers = new Helpers();
  17.         private HttpRequests MyRequests = new HttpRequests();
  18.  
  19.         public string SessionID { get; set; }
  20.         private string LoginCSRF { get; set; }
  21.         private string RegisterCSRF { get; set; }
  22.         private string CheckCSRF { get; set; }
  23.  
  24.         public bool Login(string user, string pass, string proxy = "")
  25.         {
  26.             LoginCSRF = helpers.GetCSRF("https://www.instagram.com/accounts/login/", proxy);
  27.             helpers.Log(debug, "Grabbed Login CSRF: " + LoginCSRF);
  28.  
  29.             string post = "username=" + user + "&password=" + pass;
  30.             string url = "https://www.instagram.com/accounts/login/ajax/";
  31.  
  32.             string[] headers = new string[]
  33.             {
  34.                 "Host: www.instagram.com",
  35.                 "User-Agent: " + helpers.GetUserAgent(proxy),
  36.                 "Accept: */*",
  37.                 "Accept-Language: en-US,en;q=0.5",
  38.                 "X-CSRFToken: " + LoginCSRF,
  39.                 "X-Instagram-AJAX: 1",
  40.                 "Content-Type: application/x-www-form-urlencoded",
  41.                 "X-Requested-With: XMLHttpRequest",
  42.                 "Referer: https://www.instagram.com/accounts/login/",
  43.                 "Cookie: csrftoken=" + LoginCSRF + "; mid=WFOHewAEAAEl7tki8YuogH4lc9rS; ig_pr=1; ig_vw=1366",
  44.                 "Connection: keep-alive",
  45.             };
  46.  
  47.             HttpWebRequest request = MyRequests.Create(url, HttpRequests.Method.POST, headers);
  48.  
  49.             if (proxy != string.Empty && proxy.Contains(":"))
  50.             {
  51.                 string[] splitter = proxy.Split(':');
  52.                 WebProxy prox = new WebProxy(splitter[0], Int32.Parse(splitter[1]));
  53.                 prox.BypassProxyOnLocal = true;
  54.                 request.Proxy = prox;
  55.                 helpers.Log(debug, "Proxy Set: " + proxy);
  56.             }
  57.  
  58.             MyRequests.Write(request, post);
  59.  
  60.             HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  61.  
  62.             string html = MyRequests.GetSource(response);
  63.             helpers.Log(debug, "Login HTML: " + html);
  64.  
  65.             if (html.Contains("\"authenticated\": true"))
  66.             {
  67.                 string cookieName = "sessionid";
  68.                 string cookie = response.Headers.GetValues("Set-Cookie").First(x => x.StartsWith(cookieName));
  69.                 SessionID = cookie.Replace(cookieName + "=", string.Empty);
  70.                 helpers.Log(debug, "Session ID: " + SessionID);
  71.                 helpers.Log(debug, "Authenticated User: " + user);
  72.                 return true;
  73.             }
  74.             else
  75.             {
  76.                 helpers.Log(debug, "Authentication failed");
  77.                 return false;
  78.             }
  79.         }
  80.  
  81.  
  82.         public bool Register(string username, string email, string password, string fullname, string proxy = "")
  83.         {
  84.             fullname = fullname.Replace(" ", "+");
  85.             email = email.Replace("@", "%40");
  86.  
  87.             RegisterCSRF = helpers.GetCSRF("https://www.instagram.com/", proxy);
  88.             helpers.Log(debug, "Register CSRF: " + RegisterCSRF);
  89.  
  90.             string url = "https://www.instagram.com/accounts/web_create_ajax/";
  91.             string post = "email=" + email + "&password=" + password + "&username=" + username + "&first_name=" + fullname;
  92.  
  93.             string[] headers = new string[]
  94.             {
  95.                 "Host: www.instagram.com",
  96.                 "User-Agent: " + helpers.GetUserAgent(proxy),
  97.                 "Accept: */*",
  98.                 "Accept-Language: en-US,en;q=0.5",
  99.                 "X-CSRFToken: " + RegisterCSRF,
  100.                 "X-Instagram-AJAX: 1",
  101.                 "Content-Type: application/x-www-form-urlencoded",
  102.                 "X-Requested-With: XMLHttpRequest",
  103.                 "Connection: keep-alive",
  104.                 "Cookie: mid=WFTOrAAEAAGeFe3by_c5bY_ODw_U; ig_pr=1; ig_vw=1366; csrftoken=" + RegisterCSRF,
  105.                 "Referer: https://www.instagram.com/"
  106.             };
  107.  
  108.             HttpWebRequest request = MyRequests.Create(url, HttpRequests.Method.POST, headers);
  109.  
  110.             if (proxy != string.Empty && proxy.Contains(":"))
  111.             {
  112.                 string[] splitter = proxy.Split(':');
  113.                 WebProxy prox = new WebProxy(splitter[0], Int32.Parse(splitter[1]));
  114.                 prox.BypassProxyOnLocal = true;
  115.                 request.Proxy = prox;
  116.                 helpers.Log(debug, "Proxy Set: " + proxy);
  117.             }
  118.  
  119.             MyRequests.Write(request, post);
  120.             HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  121.  
  122.             string html = MyRequests.GetSource(response);
  123.             helpers.Log(debug, "Register HTML: " + html);
  124.  
  125.             if (html.Contains("\"account_created\": true"))
  126.             {
  127.                 helpers.Log(debug, "An account has been created with the username: " + username);
  128.                 return true;
  129.             }
  130.             else
  131.             {
  132.                 helpers.Log(debug, "Account Creation Failed");
  133.                 return false;
  134.             }
  135.         }
  136.  
  137.         public bool IsUsernameAvailable(string username)
  138.         {
  139.             CheckCSRF = helpers.GetCSRF("https://www.instagram.com/");
  140.             helpers.Log(debug, "Check Username CSRF: " + CheckCSRF);
  141.  
  142.             string url = "https://www.instagram.com/accounts/web_create_ajax/attempt/";
  143.             string post = "email=email%40provider.com&password=password&username=" + username + "&first_name=chris";
  144.  
  145.             string[] headers = new string[]
  146.             {
  147.                 "Host: www.instagram.com",
  148.                 "User-Agent: " + helpers.GetUserAgent(),
  149.                 "Accept: */*",
  150.                 "Accept-Language: en-US,en;q=0.5",
  151.                 "X-CSRFToken: " + CheckCSRF,
  152.                 "X-Instagram-AJAX: 1",
  153.                 "Content-Type: application/x-www-form-urlencoded",
  154.                 "X-Requested-With: XMLHttpRequest",
  155.                 "Connection: keep-alive",
  156.                 "Cookie: mid=WFTOrAAEAAGeFe3by_c5bY_ODw_U; ig_pr=1; ig_vw=1366; csrftoken=" + CheckCSRF,
  157.                 "Referer: https://www.instagram.com/"
  158.             };
  159.  
  160.             HttpWebRequest request = MyRequests.Create(url, HttpRequests.Method.POST, headers);
  161.  
  162.             MyRequests.Write(request, post);
  163.  
  164.             HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  165.  
  166.             string html = MyRequests.GetSource(response);
  167.  
  168.             if (!html.Contains("Sorry, that username is taken"))
  169.             {
  170.                 helpers.Log(debug, username + " is available");
  171.                 return true;
  172.             }
  173.             else
  174.             {
  175.                 helpers.Log(debug, username + " is taken");
  176.                 return false;
  177.             }
  178.         }
  179.     }
  180. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement