- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
<?php
$fin = fopen($argv[1], 'r');
if($fin === false) die();
$fout = fopen('dump.csv', 'w');
if($fout === false) die();
while(!feof($fin)) {
$rawline = fgets($fin);
if(!preg_match('#\[+(.*)\]+,?#', $rawline, $matches)) continue;
$fields = str_getcsv($matches[1]);
$parts = explode(')', $fields[0]);
if(count($parts) < 2) continue;
list($host, $path) = $parts;
$domains = explode(',', $host);
$dirs = explode('/', $path);
if($domains[0] === 'ru' && $domains[1] === 'mail') {
$email = $dirs[2] . '@' . $dirs[1] . '.ru';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
} else if($domains[0] === 'ru' && $domains[1] === 'rambler' && $dirs[1] = 'users') {
if(strpos($dirs[2], '@') === false) {
$email = $dirs[2] . '@rambler.ru';
} else {
$email = $dirs[2];
}
$hash = md5($email);
fputcsv($fout, array($hash, $email));
} else if($domains[0] === 'ru' && $domains[1] === 'ya') {
$email = $domains[2] . '@yandex.ru';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
$email = $domains[2] . '@yandex.by';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
$email = $domains[2] . '@yandex.ua';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
$email = $domains[2] . '@yandex.kz';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
$email = $domains[2] . '@yandex.com';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
$email = $domains[2] . '@ya.ru';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
} else if($domains[0] === 'ru' && $domains[1] === 'yandex' && $dirs[1] = 'users') {
$email = $dirs[2] . '@yandex.ru';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
$email = $dirs[2] . '@yandex.by';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
$email = $dirs[2] . '@yandex.ua';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
$email = $dirs[2] . '@yandex.kz';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
$email = $dirs[2] . '@yandex.com';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
$email = $dirs[2] . '@ya.ru';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
}
}
fclose($fout);
fclose($fin);
Генератор радужных таблиц для е-мейлов.
Особенность программы в том, что «JSON» парсится как «CSV» в целях экономии оперативки.