Доброго времени суток форумчане
Работать мы будем с mysql добавлять\проверять есть ли почта в АП.
Для начала создадим в mysql базу и таблицы.
Дальше по коду все просто
Результат работы: 100к прочекало за 15сек.
Запускаем Start.bat ибо устанавливаем свой denver, xampp)
Ссылка скрыта от гостей
. Сегодня мы напишем локальный антипаблик почт\url да чего угодно.Работать мы будем с mysql добавлять\проверять есть ли почта в АП.
Для начала создадим в mysql базу и таблицы.
Ссылка скрыта от гостей
(на пастебине ибо на форуме нельзя создать тему с таким кодом) Дальше по коду все просто
Код:
using System;
using System.IO;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient; //библа для работы с mysql сервером
namespace AntiPublic
{
internal class Program
{
private static string FNAME = string.Empty;
[STAThread]
private static void Main()
{
Console.Title = "AntiPublic (mp) byGuron";
LoadBase(); //загрузка базы
Sqlconn(); //функция проверки
}
private static void LoadBase()
{
var ofd = new OpenFileDialog {Filter = "All text|*.txt;*.csv;*.dic;*.log|All files|*.*" };
if (ofd.ShowDialog() != DialogResult.OK) Environment.Exit(0); //если база не загружена пишем это и выходим с проги.
FNAME = ofd.FileName;
}
private static void Sqlconn()
{
const string config = "server=localhost;user=root;password=123456;persistsecurityinfo=True;"; //данные для подключения к БД
using (var con = new MySqlConnection(config))
{
con.Open(); // Открываем плдключение 1 раз
var startDate = DateTime.Now;
Console.WriteLine("Arbaiten...");
using (var sw1 = new StreamWriter("Gur_ap_private.txt", true, Encoding.UTF8))
using (var sw2 = new StreamWriter("Gur_ap_public.txt", true, Encoding.UTF8))
using (var sw3 = new StreamWriter("Gur_ap_error.txt", true, Encoding.UTF8))
//{
foreach (var str in File.ReadLines(FNAME)) //перечисляем строки
{
if (string.IsNullOrEmpty(str)) continue; //если стога пуста то проверяем следующую
var ch = str[0].ToString(); //це що бы разбивать бД на несколько таблиц. (потому как искать в 1 ляме проще чем в допустим 30лямах )
switch (ch)
{
case "1":
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
case "0":
case ".":
case "_":
case "-":
ch = "UnderDashDot09";
break;
}
var acc = str.Split(':', ';'); // оиделяем email от пароля
if (acc.Length != 2) // если это не email:pass то пшем в error
{
sw3.WriteLine(str);
continue;
}
var sql = $"INSERT INTO AntiMail.{ch} (mail, pass) VALUES ('{acc[0].ToLower()}', '{acc[1]}')"; //делаем запрос в БД
var comm = new MySqlCommand(sql, con);
try
{
comm.ExecuteNonQuery();
sw1.WriteLine(str);
}
catch (Exception e)
{
if (e.Message.Contains("Duplicate entry"))
sw2.WriteLine(str); //если строка присутствует то пишем в public
else
sw3.WriteLine(str); //иначе в private
}
}
}
Console.WriteLine(DateTime.Now - startDate);
con.Close(); //по окончпании чека закрываем подключение
Console.WriteLine("Готово!");
Console.Read();
}
}
}
}
Запускаем Start.bat ибо устанавливаем свой denver, xampp)