Задать вопрос
  • Можно ли создать аккаунт на ютуб сейчас, не имея google аккаунта?

    @SmeliyR Автор вопроса
    tut_nick, В общем он не всегда просит, из трёх раз попросил один раз отправить.
    Написано
  • Можно ли создать аккаунт на ютуб сейчас, не имея google аккаунта?

    @SmeliyR Автор вопроса
    SmeliyR, по итогу действительно сработало - даже номер не привязался но в процессе верификации на телефоне пришлось ОТПРАВИТЬ ИСХОДЯЩУЮ СМС! возникает вопрос - можно ли было отправить её и так, не открывая ссылку, пока остаётся открытым.
    Написано
  • Можно ли создать аккаунт на ютуб сейчас, не имея google аккаунта?

    @SmeliyR Автор вопроса
    tut_nick,
    кстати "Учетка на смарфтоне не регается и не привязывается." в это верю - ведь человек может и с айфона открыть ссылку, а там гугл акков и в помине нет.
    Интересно, как гугл узнаёт, что я открыл именно с телефона, а не с компьютера?
    а если с телефона, но в суперзащищённом браузере (который фингер принтов не отправляет)...

    если просто проверка по User-Agent то это какая то слишком простая защита от спамеров, а реальным людям проблемы создаёт.
    Написано
  • Можно ли создать аккаунт на ютуб сейчас, не имея google аккаунта?

    @SmeliyR Автор вопроса
    tut_nick,
    Если совсем страшно - используйте ссылку из qr кода, в эмуляторе андроида на ПК.


    именно так я и делал, но гугл послал меня куда подальше (может быть проблема была не в том , что я с эмулятора был кстати, а из за того что например айпи у меня какой то грязный, хотя юзаю обычный мобильный инет...)

    ок попробую тогда с реального аппарата, если акки не свяжутся между собой...
    Написано
  • Если подключиться к OpenVPN в WSL2, повлияет ли это на весь остальной Windows?

    @SmeliyR Автор вопроса
    WSGlebKavash,
    Вообще да. Странно... У меня работало.


    в итоге через эту https://support.bignox.com/ja/else/hypervonbeta версию с японского сайта заработало с включенным Hyper-V но настойчиво предупреждает что лучше отключить Hyper-V так как при включенном работа Nox может быть сильно медленнее
    Написано
  • Если подключиться к OpenVPN в WSL2, повлияет ли это на весь остальной Windows?

    @SmeliyR Автор вопроса
    WSGlebKavash, а какая версия была?
    и откуда инфа что нужна винда именно новее 2004 (20H1) - есть ссылка
    на эту инфу? может из неё смогу почерпнуть что да как.

    в целом про nox и hyper-v вообще нашёл только пару упоминаний и все на японском почему то:
    https://support.bignox.com/ja/else/hypervonbeta
    Написано
  • Если подключиться к OpenVPN в WSL2, повлияет ли это на весь остальной Windows?

    @SmeliyR Автор вопроса
    WSGlebKavash, У меня версия 22H2.
    я так полагаю, это новее, чем требуется? wtf??
    Написано
  • Если подключиться к OpenVPN в WSL2, повлияет ли это на весь остальной Windows?

    @SmeliyR Автор вопроса
    WSGlebKavash, а какая у вас версия?
    как только я включаю компоненты "hyper-v" и "платформа виртуальной машины" в настройках windows, то
    у меня не работает ;(
    691bed8c81802674752956.jpeg
    Написано
  • Какие есть простенькие скрипты "HTTP over Email", чтоб поставить у себя на серваке?

    @SmeliyR Автор вопроса
    Работает!

    Попросил для PHP - написал и для него:

    <?php
    // Конфигурация почты (IMAP)
    const IMAP_HOST = '{imap.example.com:993/imap/ssl}INBOX';
    const IMAP_USER = 'inbox@example.com';
    const IMAP_PASS = 'PASSWORD';
    
    // SMTP для отправки ответа (используем PHPMailer)
    const SMTP_HOST = 'smtp.example.com';
    const SMTP_USER = 'inbox@example.com';
    const SMTP_PASS = 'PASSWORD';
    const SMTP_PORT = 587; // или 465
    
    // Конфигурация внешних утилит для скачивания
    // Формат: 'name' => ['cmd' => '/path/to/bin', 'default_args' => '...']
    // В теле письма можно указывать имя утилиты в строке вида: "#tool: wget" (необязательно)
    const DOWNLOAD_TOOLS = [
        // по умолчанию - wget: одна страница с картинками и вложенность 1
        'wget' => [
            'cmd' => '/usr/bin/wget',
            'default_args' => '--page-requisites --convert-links --adjust-extension --span-hosts -r -l 1 -P %s %s'
            // %s: destination dir, %s: URL
        ],
        // пример другой утилиты (httrack)
        'httrack' => [
            'cmd' => '/usr/bin/httrack',
            'default_args' => '-O %s %s'
        ],
    ];
    
    // Общие временные директории
    $tempBase = sys_get_temp_dir() . '/mail_url_processor';
    if (!is_dir($tempBase)) mkdir($tempBase, 0700, true);
    
    // Вспомогательные функции
    function logmsg($s) { echo "[" . date('Y-m-d H:i:s') . "] $s\n"; }
    
    function connect_imap() {
        $mailbox = IMAP_HOST;
        $inbox = @imap_open($mailbox, IMAP_USER, IMAP_PASS);
        if (!$inbox) {
            throw new Exception("Cannot connect to IMAP: " . imap_last_error());
        }
        return $inbox;
    }
    
    function extract_urls_and_tool($body) {
        $lines = preg_split("/\r\n|\n|\r/", $body);
        $urls = [];
        $tool = null;
        foreach ($lines as $line) {
            $line = trim($line);
            if ($line === '') continue;
            // tool directive: #tool: name
            if (preg_match('/^#tool:\s*([a-z0-9_-]+)/i', $line, $m)) {
                $tool = strtolower($m[1]);
                continue;
            }
            // url detection (simple)
            if (preg_match('/https?:\/\/[^\s<>"]+/i', $line, $m)) {
                $urls[] = trim($m[0]);
                continue;
            }
            // если строка выглядит как bare domain/path, можно попытаться дополнять (опционально)
        }
        return [$urls, $tool];
    }
    
    function download_url_with_tool($toolKey, $url, $destDir) {
        if (!isset(DOWNLOAD_TOOLS[$toolKey])) {
            throw new Exception("Tool not configured: $toolKey");
        }
        $tool = DOWNLOAD_TOOLS[$toolKey];
        $cmdPath = $tool['cmd'];
        $argsTemplate = $tool['default_args'];
        // экранируем путь и url
        $destEsc = escapeshellarg($destDir);
        $urlEsc = escapeshellarg($url);
        $args = sprintf($argsTemplate, $destEsc, $urlEsc);
        $fullCmd = escapeshellcmd($cmdPath) . ' ' . $args . ' 2>&1';
        // запуск
        $output = [];
        $ret = 0;
        exec($fullCmd, $output, $ret);
        return ['code' => $ret, 'output' => implode("\n", $output)];
    }
    
    // Отправка письма с вложением ZIP (используем PHPMailer)
    require_once __DIR__ . '/vendor/autoload.php'; // предполагаем установленный PHPMailer через Composer
    
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;
    
    function send_reply_with_zip($toEmail, $subject, $bodyText, $zipPath) {
        $mail = new PHPMailer(true);
        $mail->isSMTP();
        $mail->Host = SMTP_HOST;
        $mail->SMTPAuth = true;
        $mail->Username = SMTP_USER;
        $mail->Password = SMTP_PASS;
        $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
        $mail->Port = SMTP_PORT;
        $mail->setFrom(SMTP_USER, 'URL Downloader');
        $mail->addAddress($toEmail);
        $mail->Subject = $subject;
        $mail->Body = $bodyText;
        $mail->addAttachment($zipPath, basename($zipPath));
        $mail->send();
    }
    
    // Основная обработка
    try {
        $inbox = connect_imap();
        // Ищем письма с темой "url" (без учёта регистра)
        $search = 'SUBJECT "url" UNSEEN';
        $emails = imap_search($inbox, $search, SE_UID);
        if (!$emails) {
            logmsg("No matching emails.");
            imap_close($inbox);
            exit(0);
        }
    
        foreach ($emails as $uid) {
            $overview = imap_fetch_overview($inbox, $uid, FT_UID)[0];
            $header = imap_headerinfo($inbox, imap_msgno($inbox, $uid));
            $from = isset($overview->from) ? $overview->from : null;
            // get sender email
            $fromAddress = '';
            if (isset($header->from) && is_array($header->from) && isset($header->from[0])) {
                $a = $header->from[0];
                $fromAddress = (isset($a->mailbox) && isset($a->host)) ? ($a->mailbox . '@' . $a->host) : '';
            }
    
            // get body (try text/plain first)
            $body = '';
            $structure = imap_fetchstructure($inbox, $uid, FT_UID);
            if (!isset($structure->parts) || count($structure->parts) == 0) {
                $body = imap_body($inbox, $uid, FT_UID);
            } else {
                // walk parts
                $parts = $structure->parts;
                foreach ($parts as $idx => $part) {
                    $partno = $idx+1;
                    $partData = imap_fetchbody($inbox, $uid, $partno, FT_UID);
                    if ($part->encoding == 3) $partData = base64_decode($partData);
                    if ($part->encoding == 4) $partData = quoted_printable_decode($partData);
                    if ($part->subtype == 'PLAIN' || stripos($part->type, 'text') !== false) {
                        $body .= $partData . "\n";
                    }
                }
                if ($body === '') {
                    // fallback
                    $body = imap_body($inbox, $uid, FT_UID);
                }
            }
    
            list($urls, $toolFromBody) = extract_urls_and_tool($body);
            if (empty($urls)) {
                logmsg("UID $uid: no URLs found, marking seen.");
                imap_setflag_full($inbox, $uid, "\\Seen", ST_UID);
                continue;
            }
    
            $toolKey = $toolFromBody ?? 'wget';
            if (!isset(DOWNLOAD_TOOLS[$toolKey])) $toolKey = 'wget';
    
            $jobDir = $tempBase . '/job_' . time() . '_' . mt_rand(1000,9999);
            mkdir($jobDir, 0700, true);
    
            $downloadReports = [];
            foreach ($urls as $i => $url) {
                $urlSafe = preg_replace('/[^a-z0-9._-]/i', '_', parse_url($url, PHP_URL_HOST) . '_' . $i);
                $destDir = $jobDir . '/' . $urlSafe;
                mkdir($destDir, 0700, true);
                logmsg("Downloading $url with $toolKey into $destDir");
                $res = download_url_with_tool($toolKey, $url, $destDir);
                $downloadReports[] = [
                    'url' => $url,
                    'tool' => $toolKey,
                    'code' => $res['code'],
                    'output' => $res['output'],
                    'dest' => $destDir
                ];
            }
    
            // Создаём ZIP
            $zipPath = $jobDir . '/download_' . time() . '.zip';
            $zip = new ZipArchive();
            if ($zip->open($zipPath, ZipArchive::CREATE) !== true) {
                throw new Exception("Cannot create zip at $zipPath");
            }
            // рекурсивно добавляем файлы из jobDir
            $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($jobDir, RecursiveDirectoryIterator::SKIP_DOTS));
            foreach ($files as $file) {
                if ($file->isDir()) continue;
                $filePath = $file->getRealPath();
                // не добавляем сам zip (если попадёт)
                if ($filePath === $zipPath) continue;
                $localName = substr($filePath, strlen($jobDir)+1);
                $zip->addFile($filePath, $localName);
            }
            $zip->close();
    
            // Формируем тело ответа с кратким отчётом
            $bodyText = "Attached ZIP contains downloaded content.\n\nReport:\n";
            foreach ($downloadReports as $r) {
                $bodyText .= "- URL: {$r['url']}\n  tool: {$r['tool']}\n  exit: {$r['code']}\n";
            }
    
            // Отправляем ответ отправителю
            if ($fromAddress) {
                send_reply_with_zip($fromAddress, 'Downloaded URLs', $bodyText, $zipPath);
                logmsg("Sent reply to $fromAddress with zip.");
            } else {
                logmsg("No sender address; skipping send.");
            }
    
            // Пометить письмо как прочитанное
            imap_setflag_full($inbox, $uid, "\\Seen", ST_UID);
    
            // Очистка временных файлов — оставляем на всякий случай; можно удалить:
            // recursive delete
            $it = new RecursiveDirectoryIterator($jobDir, RecursiveDirectoryIterator::SKIP_DOTS);
            $files = new RecursiveIteratorIterator($it, RecursiveIteratorIterator::CHILD_FIRST);
            foreach ($files as $file) {
                if ($file->isDir()) rmdir($file->getRealPath());
                else unlink($file->getRealPath());
            }
            @rmdir($jobDir);
        }
    
        imap_close($inbox);
    } catch (Exception $e) {
        logmsg("Error: " . $e->getMessage());
        exit(1);
    }
    Написано
  • Какой эмулятор Android для ПК позволяет эмулировать приём и отправку SMS?

    @SmeliyR Автор вопроса
    А в нём нормально работают все распространнённые приложения - гугл сервисы, ютуб, тот же самый новый гугл аккаунт можно там завести?
    С проблемой я столкнулся когда пытался в NoxPLayer новый гугл акк создать - там он отправляет смску (или принимает, не помню точно) а в NoxPlayer ничего подобного нету..
    Написано
  • Какие есть простенькие скрипты "HTTP over Email", чтоб поставить у себя на серваке?

    @SmeliyR Автор вопроса
    shurshur,
    За 5 секунд что-либо скачать вряд ли возможно, письмо может банально у почтовых сервисов отмораживаться не одну минуту.


    имеется ввиду проверка входящих раз в 5 сек, при получении задании скрипт перестаёт проверять входящие и занимается скачкой урлов, затем отправляет результаты и только потом снова встаёт в цикл проверки входящих.
    впрочем это не важно - главное вариативность закачки урлов - с картинками или без, максимальный суммарный размер скачанного на одну страницу или таймаут...ну и т.п.
    Написано
  • Какие есть простенькие скрипты "HTTP over Email", чтоб поставить у себя на серваке?

    @SmeliyR Автор вопроса
    Sand,
    Это специфическая задача с конкретными условиями. Лучше всего самому такой скрипт написать


    Я создал вопрос потому что начал сам писать, но завис на стадии отправки.
    Часть читающая письма - работает, закачка урла тоже (пока без картинок и т.п.) но отправка почему то упорно
    не соединяется с яндексом.
    Покопавшись полчаса, подумал, что зачем изобретать велосипед, наверняка кто то такое уже писал....

    <?
    
    
    
    require "PHPMailer\\Exception.php";
    require "PHPMailer\\PHPMailer.php";
    require "PHPMailer\\SMTP.php";
    require "PHPMailer\\OAuthTokenProvider.php";
    require "PHPMailer\\OAuth.php";
    
    
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;
    use PHPMailer\PHPMailer\SMTP;
    
    //Create an instance; passing `true` enables exceptions
    $mail = new PHPMailer(true);
    // TEST SEND!!!!!!!
    try {
        //Server settings
    	$mail->Mailer = 'smtp';
        $mail->SMTPDebug = SMTP::DEBUG_SERVER;                      //Enable verbose debug output
        $mail->isSMTP();                                            //Send using SMTP
        $mail->Host       = 'ssl://smtp.yandex.ru';                     //Set the SMTP server to send through
        $mail->SMTPAuth   = true;                                   //Enable SMTP authentication
        $mail->Username   = 'blablablablablablablablablabla@yandex.ru';                     //SMTP username
        $mail->Password   = 'blablablablablablablablablabla';                               //SMTP password
        $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;            //Enable implicit TLS encryption
        $mail->Port       = 465;                                    //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS`
    
        //Recipients
        $mail->setFrom('blablablablablablablablablablablabla@yandex.ru', 'blablablablablablablablablablablabla@yandex.ru');
        $mail->addAddress('blablablablablablablablablablablabla@yandex.ru', 'blablablablablablablablablablablabla@yandex.ru');     //Add a recipient
        
        //Attachments
        $mail->addAttachment('1.zip');         //Add attachments
        
    
        //Content
        $mail->isHTML(false);                                  //Set email format to HTML
        $mail->Subject = 'reurl';
        $mail->Body    = 'url:fsdfsdfdf';
        $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
    
        $mail->send();
        echo 'Message has been sent';
    } catch (Exception $e) {
        echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
    }
    
    die;
    
     
    
    
    
    $mbox = imap_open("{imap.yandex.ru:993/imap/ssl/novalidate-cert}INBOX", "blablablablablablablablablablablabla@yandex.ru", "blablablablablablablablablablablabla")
    ;
    
    if ($mbox ==false){
    	$errors = imap_errors();
    	echo implode("\n", $errors);
    	die;
    }
     
    
     //  or die("Не получилось подключиться: " . imap_last_error());
    $MC = imap_check($mbox);
    
    
    
    //
    
    // Получаем обзор каждого письма в папке INBOX
    $result = imap_fetch_overview($mbox, "1:{$MC->Nmsgs}", 0);
    
    $body = imap_body($mbox, count($result));  
    $s.="TEXT: $body \n\n\n";
    /*
    foreach ($result as $overview) {
        $s.= "#{$overview->msgno} ({$overview->date}) — От: {$overview->from}
        {$overview->subject}\n";
    }*/
    foreach ($result as $overview) 
    	if (trim($overview->subject)=="url")
    		if (stripos($overview->from, "blablablablablablablablablablablabla@yandex.ru")!==false){	
    			$body = str_ireplace("<div>", "\n<div>", $body);
    			$body = imap_body($mbox, $overview->msgno); 
    			//$s.="TEXT: $body \n\n\n";
    			$body = strip_tags($body);
    			$body = explode("\n", $body);
    			foreach($body as $url) if (($body=trim($body))!==""){
    				$text = file_get_contents($url);
    				
    			}
    			//$s.="TEXT: $body \n\n\n";
    		}
    
    
    file_put_contents("out.txt", $s);
    
    imap_close($mbox);
    
    ?>
    Написано
  • Какой самый дешевый роутер взять, чтобы подключить USB модем к нему и читать входящие смски?

    @SmeliyR Автор вопроса
    модем без вебморды самый дешевый старый например zte mf112
    Написано
  • Какой самый дешевый роутер взять, чтобы подключить USB модем к нему и читать входящие смски?

    @SmeliyR Автор вопроса
    Приобрести дешёвый mikrotik/keenetic/другой wrt совместимый роутер с USB или встроенным модемом.
    Завернуть его в WG vpn и также заходить на веб-морду модема.
    В случае в keenetic насколько могу помнить всё совсем просто, из коробки есть сервис переадресации смс в фирменного ТГ-бота.


    А вот это уже интересно. у меня в наличии Keenetik Start - в нём сиё есть?
    Написано
  • Какой самый дешевый роутер взять, чтобы подключить USB модем к нему и читать входящие смски?

    @SmeliyR Автор вопроса
    Вариант с переадресацией не подходит.
    А насчёт смартфона, Да, надо будет подумать над смартфоном...
    Написано
  • Отключается ли при БПЛА проводной интернет?

    @SmeliyR
    у правленцов есть и другой вариант, как вообще сделать так чтоб БПЛА не летали, но они им не пользуются ввиду своей полной неразумности ))))
    Написано
  • Что за ошибка " ERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)" при подключении к OpenVPN?

    @SmeliyR Автор вопроса
    pfg21, в итоге да, задачу решил на Apline Linux в VirtualBox
    Написано
  • Что за ошибка " ERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)" при подключении к OpenVPN?

    @SmeliyR Автор вопроса
    pfg21, действительно странно

    root@WIN-KPVSBPAFD7R:/mnt/c/Users/user# uname -r
    4.4.0-19041-Microsoft
    root@WIN-KPVSBPAFD7R:/mnt/c/Users/user# cd /lib/modules/6.6.87.2-1
    -bash: cd: /lib/modules/6.6.87.2-1: No such file or directory
    
    root@WIN-KPVSBPAFD7R:/mnt/c/Users/user# cd /lib/modules/
    -bash: cd: /lib/modules/: No such file or directory
    
    root@WIN-KPVSBPAFD7R:/mnt/c/Users/user# cd /lib/
    
    root@WIN-KPVSBPAFD7R:/lib# ls
    X11                dbus-1.0          groff       networkd-dispatcher  python3.12           ubuntu-advantage
    apparmor           dhcpcd            init        openssh              rsyslog              ubuntu-release-upgrader
    apt                dpkg              kernel      openvpn              sasl2                udev
    binfmt.d           environment.d     landscape   os-release           snapd                valgrind
    byobu              file              locale      pam.d                software-properties  wsl
    cloud-init         girepository-1.0  lsb         pcrlock.d            ssl                  x86_64-linux-gnu
    cnf-update-db      git-core          man-db      pm-utils             sysctl.d
    command-not-found  gnupg             mime        policykit-1          systemd
    compat-ld          gnupg2            modprobe.d  polkit-1             sysusers.d
    console-setup      gold-ld           netplan     python3              tmpfiles.d
    Написано
  • Какой Linux поставить в виртуалку, чтобы поднять на нём OpenVPN клиент и 3proxy сервер для локального использования?

    @SmeliyR Автор вопроса
    Apline рулит!
    пришлось немного повозиться: Почему после подключения из консоли к openvpn перестаёт работать SOCKS прокси 3proxy на той же виртуальной машине VirtualBox?
    но в итоге Alpine - это: 100 мб на диске, быстрый запуск и работа, 256 мб ОЗУ, можно наверное еще уменьшить.

    опишу по памяти процесс, вдруг кому то понадобится и для себя если в будущем надо будет переставить:
    1) ставит apline virt на virtualbox по гайдам
    2) Чтоб заработал 3proxy и openvpn
    
    Первая проблема: при установке надо будет добиться ручного указания DNS - можно указать 8.8.8.8, предлагаемый
    по дефолту не работал.
    Далее и вовсе прибил гвозядми файл
    командой  chattr +i /etc/resolv.conf 
    внеся в него  8.8.8.8
    
    3) Далее: не устанавливались дополнения гостевой ОС, чтоб сделать общую папку с хостом и закинуть ovpn файлы.
    
    4) Затем, openVPN установился командой apk add 
    
    5) а 3proxy не установился - нужно сначала добавить репозиторий тестинг :
    добавь /etc/apk/repositries репозитории /alpine/edge/testing
    
    6) затем ставь apk add 3proxy
    7) затем apk add openvpn
    
    8) apk add virtualbox-guest-additions linux-virtmkdir 
    mkdir -p /mnt/outside
    
    reboot
    затем в гуи virtualbox создаем папку общую с имемнем vbox_shared
    затем:
    modprobe -a vboxsf 
    mount -t vboxsf vbox_shared /mnt/outside
    
    копируем на хосте ovpn файлы в vbox_shared
    затем на виртуалке из /mnt/outside куданибудь в ~
    
    
    
    запускаем сначала 3proxy: nohup 3proxy /etc/3proxy/3proxy.cfg
    жмём ctrl+c
    чтоб снова вернуться в консоль и запускаем openvpn <имя файла>.ovpn
    ещё раз напомню что  прибил гвозядми файл
    командой  chattr +i /etc/resolv.conf 
    внеся в него  8.8.8.8 предварительно, а то DNS резолвинг не работал
    Написано
  • Почему после подключения из консоли к openvpn перестаёт работать SOCKS прокси 3proxy на той же виртуальной машине VirtualBox?

    @SmeliyR Автор вопроса
    SmeliyR, Евгений Alexey Dmitriev работает в Apline!
    причём добавил в /etc/resolv.conf нужный мне днс 8.8.8.8 , еще и прибил гвоздями файл:
    chattr +i /etc/resolv.conf

    это наверное костыль так прибивать файлик?

    и теперь работает полностью всё как нужно !
    вопрос с удоволсьтвием отмечаю отвеченным Какой Linux поставить в виртуалку, чтобы поднять на нём OpenVPN клиент и 3proxy сервер для локального использования? в пользу Apline Linux.
    Написано