Задать вопрос
  • PHP засыпает между запросами, как его разбудить?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Так у вас там сбой логики в коде, некорректно обрабатывается ситуация...
    Всё, проблема решена?

    P.S. А что вы хотели, каков вопрос - таков и ответ.
    Без полных исходников вам никто в ошибку пальцем не ткнёт.
    Ответ написан
    3 комментария
  • Как с помощью bash-скрипта выполнить ping в момент потери интернет соединения?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    IMHO проще просто запустить четыре ping-а с сохранением ошибок в файлы, а после перерыва Интернета убить всё ёще ping-ующие процессы, файлы скормить тех-поддержке.
    Запускать например так:
    ping -i5 -n 127.0.0.1 | grep -v ' time=' >ping1.log 2>&1 &
    ping -i5 -n 127.0.0.2 | grep -v ' time=' >ping2.log 2>&1 &
    ping -i5 -n 127.0.0.3 | grep -v ' time=' >ping3.log 2>&1 &
    ping -i5 -n 127.0.0.4 | grep -v ' time=' >ping4.log 2>&1 &

    А убить:
    killall ping
    IP-шники 127.0.0.X догадаетесь заменить на свои адреса?

    P.S. Нормально ушедшие-вернувшие запросы в лог-файл НЕ ПОПАДУТ. Зато и файл не распухнет до неимоверных размеров.
    Ответ написан
    Комментировать
  • Как грамотно перекодировать win-1252 в utf-8 из массива?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Похоже ваша проблема случилась из-за того, что во время INSERT-ов подключение к базе было сделано с неправильной кодировкой (charset). Вам надо определить (через "SET NAMES='CP1251';" например), какая использовалась кодировка, и именно с такой кодировкой читать эти некорректные данные, тогда они будут корректными. А потом через подключение с правильной кодировкой перезаписать их, и всё встанет на свои места...
    Ответ написан
    Комментировать
  • Как определить страну прокси, убрать Китайские прокси и полностью перезаписать файл финальным результатом?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Непримиримая борьба с прокси продолжается? :-P

    <?php
     $socks5_list = explode ("\n", str_replace ("\r", "", file_get_contents (dirname(__FILE__)."/gotovo_vse_sellery_bezdybley.txt")));
    if (empty($socks5_list))
    {
        exit(1);
    }
     function _check_socks5 ($socks = array(), $filename)
     {
      foreach ($socks as $s)
      {
       list ($ip, $port) = explode (":", $s);
       if (geoip_country_code_by_name($ip) == "CN") continue;
       if ($socket = @fsockopen ($ip, $port, $errno, $errstr, 1))
       {
        $threads[$s] = $socket;
       }
      }
      foreach ($threads as $s => $h)
      {
       fwrite ($h, "\x05\x01\x00");
      }
      foreach ($threads as $s => $h)
      {
       $r = fread ($h, 2);
       if ((ord ($r [0]) == 5) && (ord ($r [1]) == 0))
       {
        file_put_contents ($filename, $s."\r\n");
       }
      }
     }
    
     _check_socks5 ($socks5_list, dirname(__FILE__)."/socks5_valid.txt");
    ?>
    Ответ написан
  • Почему $bd = $row[0] возвращает null, а просто $row[0] возвращает данные?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Так у вас то $row[0]['data'], то $row[0]["Date"].
    Для PHP - это две совершенно разные вещи.
    Ответ написан
  • Как сделать чтобы после logina оставаться залогиненым на любых вкладках?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Во-первых, хранить в куках email для подтверждения авторизованности пользователя - глупо. Обычно там хранят какой-нибудь уникальный MD5, который ещё и в базе залогиненных пользователей хранится. А так можно взять известный email известного пользователя, засунуть его в cookie - и вуаля, я авторизован под этим пользователем.

    Во-вторых, cookie можно выставлять с самого сервера во время AJAX-запроса, и это будет правильнее. Нельзя такой функционал делегировать JS, который виден и выполняется на стороне пользователя.

    P.S. В области безопасности игнорирование устоявшихся стандартов и изобретение своих хитрозакрученных "велосипедов" может очень больно спустить на землю.
    Ответ написан
    3 комментария
  • Как после отправки данных запретить возвращение на старую?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Сделайте возврат просто бессмысленным. Например одноразовым ключём. Первое посещение странички - ключ есть, всё делается стандартно, а стирается. Повторное обращение с этим же ключём приводит к ошибке, потому что он уже стёрт.

    Всё остальное - это элегантная попытка прятаться за шваброй.
    Ответ написан
    Комментировать
  • В чем причина, что мой чекер проксей не чекает из исходного списка - socks5 прокси?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Что-то этот марафон смахивает на "Напишите мне скрипт под мои фантизии".
    Вот возьмите и внимательно перечитайте ваше условие: хотя проксей типа "http" в "финале" быть не должно, там должны быть только прокси типов: "http" и "socks5".

    Кроме того, я же уже отвечал в вашем прошлом "задании", что Google хорошо блокирует прокси, в том числе ВСЕ sock4 и sock5, ну вот воюют они с ботами. И тут опять... Думаете задание, повторённое 10000000 раз, на 10000001 повтор всё-таки получит доступ к Google через прокси?!?!
    Ответ написан
    1 комментарий
  • Почему появляется ошибка?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Это же элементарно! У скрипта нет прав доступа к исследуемому файлу. Проверьте через is_readable().
    Ответ написан
  • Ошибка при попытке работы с iptables или ufw. Как настроить firewall в таком случае?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Выполните sudo depmod.

    P.S. Рекомендую в следующий раз сначала спрашивать у Гуугла, а потом уже здесь.
    Ответ написан
    5 комментариев
  • Как добавить к чекингу HTTPS и HTTP еще и проверку и выдачу SOCKS5 проксей?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Хых!
    <?php
    $proxies = file ("1_ne_check.txt");
    if (empty($proxies))
    {
        exit(1);
    }
    
    $mc = curl_multi_init ();
    for ($thread_no = 0; $thread_no<count ($proxies); $thread_no++)
    {
        $c [$thread_no] = curl_init ();
        curl_setopt ($c [$thread_no], CURLOPT_URL, "http://google.com");
        curl_setopt ($c [$thread_no], CURLOPT_HEADER, 0);
        curl_setopt ($c [$thread_no], CURLOPT_RETURNTRANSFER, 1);
        curl_setopt ($c [$thread_no], CURLOPT_CONNECTTIMEOUT, 5);
        curl_setopt ($c [$thread_no], CURLOPT_TIMEOUT, 10);
        curl_setopt ($c [$thread_no], CURLOPT_PROXY, trim ($proxies [$thread_no]));
        curl_setopt ($c [$thread_no], CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
        curl_multi_add_handle ($mc, $c [$thread_no]);
    }
     
    $proxies_out = array();
    do {
        while (($execrun = curl_multi_exec ($mc, $running)) == CURLM_CALL_MULTI_PERFORM);
        if ($execrun != CURLM_OK) break;
        while ($done = curl_multi_info_read ($mc))
        {
            $info = curl_getinfo ($done ['handle']);
            if ($info ['http_code'] == 301) {
                echo trim ($proxies [array_search ($done['handle'], $c)])."\r\n";
                $proxies_out[trim($proxies[array_search($done['handle'], $c)])] = trim($proxies[array_search($done['handle'], $c)]);
                unset($proxies[array_search ($done['handle'], $c)]);
            }
            curl_multi_remove_handle ($mc, $done ['handle']);
        }
    } while ($running);
    curl_multi_close ($mc);
    
    $mc = curl_multi_init ();
    for ($thread_no = 0; $thread_no<count ($proxies); $thread_no++)
    {
        $c [$thread_no] = curl_init ();
        curl_setopt ($c [$thread_no], CURLOPT_URL, "http://google.com");
        curl_setopt ($c [$thread_no], CURLOPT_HEADER, 0);
        curl_setopt ($c [$thread_no], CURLOPT_RETURNTRANSFER, 1);
        curl_setopt ($c [$thread_no], CURLOPT_CONNECTTIMEOUT, 5);
        curl_setopt ($c [$thread_no], CURLOPT_TIMEOUT, 10);
        curl_setopt ($c [$thread_no], CURLOPT_PROXY, trim ($proxies [$thread_no]));
        curl_setopt ($c [$thread_no], CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
        curl_multi_add_handle ($mc, $c [$thread_no]);
    }
     
    $proxies5_out = array();
    do {
        while (($execrun = curl_multi_exec ($mc, $running)) == CURLM_CALL_MULTI_PERFORM);
        if ($execrun != CURLM_OK) break;
        while ($done = curl_multi_info_read ($mc))
        {
            $info = curl_getinfo ($done ['handle']);
            if ($info ['http_code'] == 301) {
                echo trim ($proxies [array_search ($done['handle'], $c)])."\r\n";
                $proxies5_out[trim($proxies[array_search($done['handle'], $c)])] = trim($proxies[array_search($done['handle'], $c)]);
            }
            curl_multi_remove_handle ($mc, $done ['handle']);
        }
    } while ($running);
    curl_multi_close ($mc);
    
    file_put_contents("2_results.txt", implode("\r\n", $proxies_out)."\r\n\r\n".implode("\r\n", $proxies5_out));
    ?>
    Ответ написан
  • Что не так с кодом?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Мдааааа...
    <?php
    
    session_start();
    require('connect.php');
    $fsmsg = "";
    
    if (!empty($_POST['username']) AND !empty($_POST['password'])) {
        $username = mysqli_real_escape_string($connection, $_POST['username']);
        $password = $_POST['password'];
    
        $query = "SELECT * FROM users WHERE username='{$username}'";
        $result = mysqli_query($connection, $query) or die(mysqli_error($connection));
        $row = mysqli_fetch_assoc($result);
    
        if (isset($row['ban']) AND $row['ban'] == 1){
            $fsmsg = "Пользователь заблокирован";
        }
        else if (isset($row['password']) AND $row['password'] == $password) {
            $_SESSION['username'] = $username;
            $fsmsg = "Вы вошли под пользователем";
            if (isset($row['role']) AND $row['role'] == "admin") {
                $fsmsg = "Вы вошли под админом";
            }
        } else {
            $fsmsg = "Ошибка";
        }
    }
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport"
              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
              integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
        <link rel="stylesheet" href="style.css">
        <title>Авторизация</title>
    </head>
    <body>
    
    <div class="container">
    <?php
    if (isset($_SESSION['username'])) {
        $username = $_SESSION['username'];
        echo("Hello," . $username . ".<br>\n");
        if(!empty($fsmsg)) echo("<h2>{$fsmsg}</h2><br>\n");
        echo("<a href='logout.php' class='btn btn-lg btn-primary'>Выйти</a>");
    }
    else
    {
    ?>
        <form class="form-signin" method="POST">
            <?php if(!empty($fsmsg)) echo("<h2>{$fsmsg}</h2><br>\n"); ?>
            <h2>Авторизация</h2>
            <input type="text" name="username" class="form-control" placeholder="Username" required>
            <input type="password" name="password" class="form-control" placeholder="Password" required>
            <button class="btn btn-lg btn-primary btn-block" type="submit">Авторизоваться</button>
            <a href="index.php" class="btn btn-lg btn-primary btn-block">Зарегистрироваться</a>
        </form>
    </div>
    <?php
    }
    ?>
    </body>
    </html>


    P.S. Хотя... Учи вас, не учи - всё в пустую, "да это всё локально, да мне только показать, да я потом переучусь, правда-правда"... Ага, ага, верим-верим. Только один оскорбительный вопрос: вы на быдлокодера учитесь?
    Ответ написан
    Комментировать
  • Есть ли безкомпромиссный режим киоска в андроид?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Перепишите прошивку под свои нужды.
    Или используйте устройство, в котором это сделано.
    И будет вам 100% такой простой вещи, profit!
    Ответ написан
    Комментировать
  • Чужой код, как найти источник?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    То, что вы обвели - это CSS-код (оформление) выделенного элемента <li>.

    А что-бы посмотреть содержание свёрнутого элемента (видите многоточие ... между <li> и </li>?), слева от <li>...</li> == $0 есть треугольничек, направленный на этот самый <li>, щёлкните по нему мышкой - он и развернётся, и содержимое отобразиться...
    Ответ написан
  • Как не выполнять PHP скрипт, при условии что обрабатываемый TXT файл пустой?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Ну это вы уже совсеееем.... обленились!
    <?php
    $proxies = file ("gotovo_vse_sellery_bezdybley.txt");
    if (empty($proxies))
    {
        exit(1);
    }
    $proxies_out = array();
    //...........
    Ответ написан
    1 комментарий
  • Как вытащить из буфера данные при копировании ячеек Excel?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Скопируйте эти две ячейки, и вставьте в простой тектовый редактор (например Notepad). И вы увидите, что текст будет в виде двух строк, разделённых табуляцией \t. Соответственно при вставлении скопированного на вашей страничке можно разбить вставляемое по символу табуляции, и распихать части строки в нужные input-ы...
    Это элементарно, Ватсон!
    Ответ написан
    Комментировать
  • Как задать кодировку curl?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Ну добавьте в код
    curl_setopt(CURLOPT_HTTPHEADER, array("Accept-Charset: WINDOWS-1251"));
    , вдруг поможет...
    Ответ написан
    Комментировать
  • Как автоматизировать опрос маршрутизаторов с помощью скриптов?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Посоветую более подробно командовать plink-ом, а именно: указать аргумент -v, что-бы сообщения программы были по подробнее. Указать -l cisco, что бы уж точно логиниться как cisco. Не забыть указать протокол -telnet и порт -P 23 для точности желаемого коннекта.
    Итого:
    @echo off
    for /f %%i in (devices.txt) do (
    echo Fetching data from %%i...
    c:\putty\plink.exe -telnet -P 23 -l cisco %%i -pw "P@55W0rD!" -m command.txt -v >>log.txt 2>&1
    )
    Ответ написан
    8 комментариев
  • Как в PHP (curl_multi ) прокси чекере сделать вывод результатов в txt файл?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Хм, вроде простейшее изменение... Сами не в силах?
    <?php
    $proxies = file ("gotovo_vse_sellery_bezdybley.txt");
    $proxies_out = array();
    $mc = curl_multi_init ();
    for ($thread_no = 0; $thread_no<count ($proxies); $thread_no++)
    {
    $c [$thread_no] = curl_init ();
    curl_setopt ($c [$thread_no], CURLOPT_URL, "http://google.com");
    curl_setopt ($c [$thread_no], CURLOPT_HEADER, 0);
    curl_setopt ($c [$thread_no], CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($c [$thread_no], CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt ($c [$thread_no], CURLOPT_TIMEOUT, 10);
    curl_setopt ($c [$thread_no], CURLOPT_PROXY, trim ($proxies [$thread_no]));
    curl_setopt ($c [$thread_no], CURLOPT_PROXYTYPE, 0);
    curl_multi_add_handle ($mc, $c [$thread_no]);
    }
     
    do {
    while (($execrun = curl_multi_exec ($mc, $running)) == CURLM_CALL_MULTI_PERFORM);
    if ($execrun != CURLM_OK) break;
    while ($done = curl_multi_info_read ($mc))
    {
    $info = curl_getinfo ($done ['handle']);
    if ($info ['http_code'] == 301) {
    echo trim ($proxies [array_search ($done['handle'], $c)])."\r\n";
    $proxies_out[trim($proxies[array_search($done['handle'], $c)])] = trim($proxies[array_search($done['handle'], $c)]);
    }
    curl_multi_remove_handle ($mc, $done ['handle']);
    }
    } while ($running);
    curl_multi_close ($mc);
    file_put_contents("proxyuniq.txt", implode("\r\n", $proxies_out));
    ?>
    Ответ написан
  • Как составить регулярку?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Внутри квадратных скобок можете прописать свои наборы символов...
    if (preg_match("/^([a-z]+(\([0-9]+\))?)/", $str, $r))
    {
        $str = $r[1];
    }
    Ответ написан
    Комментировать