Флуд... так флуд: И снова BASH и сказка про NC

Тема в разделе "Флудилка", создана пользователем Igor68, 3 дек 2017.

  1. Igor68

    Igor68 Гуру

    Доброго времени суток!!!
    Довелось как-то потрогать эту пресловутую утилиту "nc" на маленькой машинке UC-7112-LX-Plus с ОС Linus по SSH сессии. Понятное дело, что захотелось применять как -то автоматически. (Всё это будет работать и на Raspberry Pi с Linux(Raspbian/Debian/Ubuntu и т.д.))
    Не бейте сильно, за мои косяки!
    Началось всё со сканирования портов в локальной сети вот этим:

    Понятно, что делал сам... и про подсказку не забыл:
    spp.sh.zip
    Код (Bash):
    www-data@Moxa:~/nsite3$ ./spp.sh
    use "help"
    www-data@Moxa:~/nsite3$ ./spp.sh help
    ./spp.sh -ip <ip addr> -p <ip port>                - сканирование портов и адресов
    ./spp.sh -ip <ip addr> -p <ip port> -f <file_res>  - сканирование с записью в файл
                                                         если файл <file_res> не указан, то сохранение
                                                         в файл "/home/httpd/ramdisk/spp.dat"
    ./spp.sh -ip <ip addr> -p <ip port> -fp <file_res> - сканирование несколькими потоками с записью в файл
                                                         если файл <file_res> не указан, то сохранение
                                                         в файл "/home/httpd/ramdisk/spp.dat"

    www-data@Moxa:~/nsite3$ ./spp.sh -ip 192.168.0.1-254 -p 21-80 -fp
    str=192 168 0 1-254
    Start URL:192.168.0.1 Stop URL:192.168.0.254
    Данные сохранял в файл по умолчанию. Ну вот соответственно и вывод хостов с портами с 21 по 80 в моей сети с адреса 192.168.0.1 по 192.168.0.254
    Код (Bash):

    www-data@Moxa:~$ cat /home/httpd/ramdisk/spp.dat

    192.168.0.1 23
    192.168.0.1 53
    192.168.0.1 80
    192.168.0.31 21
    192.168.0.31 22
    192.168.0.31 23
    192.168.0.60 22
    192.168.0.67 21
    192.168.0.67 22
    192.168.0.67 80
    192.168.0.240 21
    192.168.0.240 22
    192.168.0.240 23
    192.168.0.241 21
    192.168.0.241 22
    192.168.0.241 23
    www-data@Moxa:~/nsite3$
     
    Ох и не быстрая эта процедура.

    Изменено, по причине того, что nc-2.0 автоматически не умеет выбирать IP4 и IP6. Просто добавлен ключик "-4" и проверено.
     

    Вложения:

    • spp.sh.zip
      Размер файла:
      1,7 КБ
      Просмотров:
      31
    Последнее редактирование: 6 дек 2017
  2. Igor68

    Igor68 Гуру

    А вот этим делал запрос на WEB страничку:
    sndhttp.sh.zip
    Вот к моему роутеру (DIR-620):

    Код (Bash):
    ******  sndhttp.sh Date:01.12.2017 Version:01.01 - запрос по HTTP ******
    ./tsndhttp.sh -str <url> <port> <str>       - посылка строки <str> запроса без формирования по <url> на <port>
    ./tsndhttp.sh -get <url:port> <path>        - посылка запроса GET на <url:port>
    ./tsndhttp.sh -head <url:port> <path>       - посылка запроса HEAD на <url:port>
    ./tsndhttp.sh -options <url:port> <path>    - посылка запроса OPTIONS на <url:port>
    ./tsndhttp.sh -trace <url:port> <path>      - посылка запроса TRACE на <url:port>

    www-data@Moxa:~/nsite3$ ./sndhttp.sh -get 192.168.0.1
    url:192.168.0.1 port:80 path:/
    HTTP/1.0 200 OK
    Pragma: no-cache
    Cache-Control: no-cache, must-revalidate
    Content-type: text/html
    Expires: Tue, 02 Jan 2000 01:00:00 GMT
    Last-Modified: Sun, 03 Dec 2017 15:42:58 GMT
    Set-Cookie: user_ip=192.168.0.31

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    <title>DIR-620</title>
    <meta name="date" content="" />
    <meta name="generator" content="no generator" />
    <meta name="copyright" content="Copyright (C) 2008 D-Link Russia" />
    <meta name="keywords" content="DIR-620" />
    <meta name="description" content="DIR-620" />
    <meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />
    <meta http-equiv="pragma" content="no-cache" />
    <meta http-equiv="cache-control" content="no-cache" />
    <meta http-equiv="content-style-type" content="text/css" />
    <meta http-equiv="content-script-type" content="text/javascript" />
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
    <link rel="stylesheet" href="/css/jhmvc.css" type="text/css" />
    <link rel="stylesheet" href="/css/login.css" type="text/css" />
    <link rel="stylesheet" href="/css/common.css" type="text/css" />
    <script type="text/javascript" src="/scripts/jquery.js"></script>
    <script type="text/javascript" src="/scripts/jquery.json.js"></script>
    <script type="text/javascript" src="/scripts/jhmvc.js"></script>
    <script type="text/javascript" src="/scripts/sm_params.js"></script>

    <script type="text/javascript" src="/scripts/common1.js"></script>
    <script type="text/javascript" src="/scripts/common2.js"></script>
    <script type="text/javascript" src="/scripts/login.js"></script>
    <script type="text/javascript" src="scripts/eng.lng.js"></script>
    <script>var baselang = new Object(lang);</script>
    <script type="text/javascript" src="scripts/rus.lng.js"></script>
    <script type="text/javascript" src="/scripts/config.lng.js"></script>
    <script type="text/javascript">
    var badAuthKey = "";
    window.curlang = "rus";
    $(start)
    </script>
    </head>
    <body>
    <div id="wrapper">
    <div class="cornerstop">
    <div>
    </div>
    </div>
    <div class="forshadow">
    <div class="forshadow2">
    <div id="headerblock">
    <div id="logoblock">
    <img src="../image/logo_blue.gif">
    <div>
    DIR-620
    </div>
    </div>
    <div id='fastmenu'>
    </div>
    </div>
    <div id="rproxyinfo">
    <a onClick="disconnectFromProxy();window.location.reload();"></a><span></span>
    </div>
    <div id="id_div_messages">

    </div>
    <div id="id_div_main_container">
    <form id="id_form_main" method="post" enctype="application/x-www-form-urlencoded" action="index.cgi">
    <input type="hidden" name="v2" value="y"/>
    <input type="hidden" name="rs_type" value="html"/>
    <div id="id_div_login_input">
    <div id="id_div_container_login_input">
    <span id="hs_login"></span>
    <input id="A1" name="A1" type="text" maxlength="15" />
    <span id="hs_password"></span>
    <input id="A2" name="A2" type="password" maxlength="30" />
    <!-- <input type="checkbox" class="remb"> <span class="remember">Remember me</span> -->
    <input id="auth" name="auth" type="hidden" value="auth" />
    </div>
    </div>
    <div id="id_div_login_buttons">
    <div id="id_div_container_buttons">
    <a id="bt_submit" class="bt" href="#"></a>&nbsp;
    <a id="bt_reset" class="bt" href="#"></a>
    </div>
    </div>
    </form>
    </div>
    </div>
    </div>
    <div class="cornersbottom">
    <div>
    </div>
    </div>
    </div>
    </body>
    </html>
    www-data@Moxa:~/nsite3$
     
    А вот к яндексу:
    Код (Bash):
    www-data@Moxa:~/nsite3$ ./sndhttp.sh -head www.yandex.ru
    url:www.yandex.ru port:80
    HTTP/1.1 302 Found
    Date: Sun, 03 Dec 2017 11:45:31 GMT
    Cache-Control: no-cache,no-store,max-age=0,must-revalidate
    Location: https://www.yandex.ru/
    Expires: Sun, 03 Dec 2017 11:45:31 GMT
    Last-Modified: Sun, 03 Dec 2017 11:45:31 GMT
    P3P: policyref="/w3c/p3p.xml", CP="NON DSP ADM DEV PSD IVDo OUR IND STP PHY PRE NAV UNI"
    Set-Cookie: yandexuid=1532823811512301531; Expires=Wed, 01-Dec-2027 11:45:31 GMT; Domain=.yandex.ru; Path=/
    X-XSS-Protection: 1; mode=block
    X-Content-Type-Options: nosniff
    Content-Length: 0

    www-data@Moxa:~/nsite3$
    Понятно, что это опыты... ведь прокси для фильтра у меня не вышел.
     

    Вложения:

    • sndhttp.sh.zip
      Размер файла:
      1,5 КБ
      Просмотров:
      33
    ИгорьК нравится это.
  3. Igor68

    Igor68 Гуру

    Вот Этим... можно сказать анализ ответа:
    anshttp.sh.zip
    Код (Bash):
    www-data@Moxa:~/nsite3$ ./anshttp.sh

    примените "help" для информации

    www-data@Moxa:~/nsite3$ ./anshttp.sh help

    ******  anshttp.sh Date:26.11.2017 Version:01.01 - анализ ответа по HTTP ******
    tanshttp.sh -a <data>      - анализ строки <data>
    tanshttp.sh -at <data>     - анализ строки <data> с выводом в консоль
    tanshttp.sh -af <data>     - анализ строки <data> с выводом в файл "/home/httpd/ramdisk/anshttp.dat"

    www-data@Moxa:~/nsite3$
    Правда нужна и обёртка:
    wnsite.sh.zip
    ...а так же и все ранее упомянутые скрипты, что бы получить это:

    Код (Bash):
    ww-data@Moxa:~/nsite3$ ./wnsite.sh help

    ******  wnsite.sh Date:30.11.2017 Version:01.01 *******

    help                        - Текущая подсказка

    ******  spp.sh Date:02.12.2017 Version:01.01    ******
    spp <ip addr> <start_port-stop_port>     - сканирование портов и адресов
    spps <ip addr> <ip port> <file_res>       - сканирование несколькими потоками с записью в файл

    get_http <url:port> <path>       - GET запрос к странице на <url> по умолчанию <port> = 80
    head_http <url:port> <path>      - HEAD запрос к странице на <url> по умолчанию <port> = 80
    options_http <url:port> <path>   - OPTIONS запрос к странице на <url> по умолчанию <port> = 80
    trace_http <url:port> <path>     - TRACE запрос к странице на <url> по умолчанию <port> = 80

    www-data@Moxa:~/nsite3$ ./wnsite.sh head_http www.yandex.ru
    url:www.yandex.ru port:80
    HTTP/1.1 302 Found
    Date: Sun, 03 Dec 2017 12:09:47 GMT
    Cache-Control: no-cache,no-store,max-age=0,must-revalidate
    Location: https://www.yandex.ru/
    Expires: Sun, 03 Dec 2017 12:09:47 GMT
    Last-Modified: Sun, 03 Dec 2017 12:09:47 GMT
    P3P: policyref="/w3c/p3p.xml", CP="NON DSP ADM DEV PSD IVDo OUR IND STP PHY PRE NAV UNI"
    Set-Cookie: yandexuid=9695709701512302987; Expires=Wed, 01-Dec-2027 12:09:47 GMT; Domain=.yandex.ru; Path=/
    X-XSS-Protection: 1; mode=block
    X-Content-Type-Options: nosniff
    Content-Length: 0

    ******* anscode=302
    ***************** Ответ на запрос ******************************
    Результат               : 302 - Временно перемещен, Moved Temporarily.
    Cache-Control           : no-cache,no-store,max-age=0,must-revalidate
    Date                    : Sun, 03 Dec 2017 12:09:47 GMT
    Location                : https://www.yandex.ru/
    P3P                     : policyref="/w3c/p3p.xml", CP="NON DSP ADM DEV PSD IVDo OUR IND STP PHY PRE NAV UNI"
    Last-Modified           : Sun, 03 Dec 2017 12:09:47 GMT
    X-XSS-Protection        : 1; mode=block
    X-Content-Type-Options  : nosniff
    Set-Cookie              : yandexuid=9695709701512302987; Expires=Wed, 01-Dec-2027 12:09:47 GMT; Domain=.yandex.ru; Path=/
    Content-Length          : 0
    ****************************************************************
    www-data@Moxa:~/nsite3$
     

    Вложения:

    • anshttp.sh.zip
      Размер файла:
      2,6 КБ
      Просмотров:
      28
    • wnsite.sh.zip
      Размер файла:
      1,1 КБ
      Просмотров:
      30
    Последнее редактирование: 3 дек 2017
  4. Igor68

    Igor68 Гуру

    А вот этот "шатун" (пока, что заготовка) работает... выполняет функцию браузера:
    br1site.sh.zip
    Что он делает? А вот
    1) запускаем:

    Код (Bash):
    www-data@Moxa:~/nsite3$ ./br1site.sh www.google.com
    send...
    analise...
    CMD File:  File:/home/httpd/ramdisk/anshttp.dat
    url:www.google.com port:80 path:/
    HTTP/1.0 302 Found
    Cache-Control: private
    Content-Type: text/html; charset=UTF-8
    Referrer-Policy: no-referrer
    Location: http://www.google.ru/?gfe_rd=cr&dcr=0&ei=Du4jWqrVDYPHYLaMpoAP
    Content-Length: 266
    Date: Sun, 03 Dec 2017 12:29:02 GMT

    <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
    <TITLE>302 Moved</TITLE></HEAD><BODY>
    <H1>302 Moved</H1>
    The document has moved
    <A HREF="http://www.google.ru/?gfe_rd=cr&amp;dcr=0&amp;ei=Du4jWqrVDYPHYLaMpoAP">here</A>.
    </BODY></HTML>

    Status-Code: 302
    Content-Type: text/html; charset=UTF-8
    Date: Sun, 03 Dec 2017 12:29:02 GMT
    Content-Length: 266
    Location: http://www.google.ru/?gfe_rd=cr&dcr=0&ei=Du4jWqrVDYPHYLaMpoAP
    P3P:

    ===============================
    302
    http://www.google.ru/?gfe_rd=cr&dcr=0&ei=Du4jWqrVDYPHYLaMpoAP
    ===============================
     
    И вот он получив код 302=(Временно перемещен, Moved Temporarily.) и новый путь=http://www.google.ru/?gfe_rd=cr&dcr=0&ei=Du4jWqrVDYPHYLaMpoAP
    снова вызывает GET, но не уходит с URL... а только путь:
    Код (Bash):

    send...
    analise...
    CMD File:  File:/home/httpd/ramdisk/anshttp.dat
    url:www.google.com port:80 path:http://www.google.ru/?gfe_rd=cr&dcr=0&ei=Du4jWqrVDYPHYLaMpoAP
    HTTP/1.0 200 OK
    Date: Sun, 03 Dec 2017 12:29:56 GMT
    Expires: -1
    Cache-Control: private, max-age=0
    Content-Type: text/html; charset=UTF-8
    P3P: CP="This is not a P3P policy! See g.co/p3phelp for more info."
    Server: gws
    X-XSS-Protection: 1; mode=block
    X-Frame-Options: SAMEORIGIN
    Set-Cookie: 1P_JAR=2017-12-03-12; expires=Tue, 02-Jan-2018 12:29:56 GMT; path=/; domain=.google.ru
    Set-Cookie: NID=118=kAhFmdB5XIbkmVaZ3i8AWUbXLAoM0CUDLBwz8FcMeFQeQdgypbJP4y_KrAJjZez6ihm0RJN7KVECQEgwW9Tzl1vkwBdR4PXhK-1ifflSaask-dF7Cd86fYwdHVv11Rv5; expires=Mon, 04-Jun-2018 12:29:56 GMT; path=/; domain=.google.ru; HttpOnly
    Accept-Ranges: none
    Vary: Accept-Encoding
    .....
    ..... а тут содержимое страницы - уж больно много.
    .....
     
    И получив после анализа код 200=Ок прекращаем работу:
    Код (Bash):

    Status-Code: 200
    Content-Type: text/html; charset=UTF-8
    Date: Sun, 03 Dec 2017 12:29:56 GMT
    Content-Length:
    Location:
    P3P: CP="This is not a P3P policy! See g.co/p3phelp for more info."

    ===============================
    200

    ===============================

    www-data@Moxa:~/nsite3$
     
    Станица получена и Шатун завершил работу... почему URL внутри не меняем, а только путь?
    А вдруг через прокси какой-нибудь будем работать... ну это в дальнейшем.
     

    Вложения:

    • br1site.sh.zip
      Размер файла:
      542 байт
      Просмотров:
      31
    Последнее редактирование: 3 дек 2017
  5. Igor68

    Igor68 Гуру

    А вот с помощью шатуна, но только через прокси:
    Код (Bash):
    www-data@Moxa:~/nsite3$ ./br1site.sh 151.80.197.192:80 http://www.google.com/
    send...
    analise...
    CMD File:  File:/home/httpd/ramdisk/anshttp.dat
    url:151.80.197.192 port:80 path:http://www.google.com/
    HTTP/1.1 302 Found
    Date: Sun, 03 Dec 2017 13:38:17 GMT
    Cache-Control: private
    Content-Type: text/html; charset=UTF-8
    Referrer-Policy: no-referrer
    Location: http://www.google.fr/?gfe_rd=cr&dcr=0&ei=Sf4jWqv4KOzS8AfDvaCADw
    Content-Length: 268
    Via: 1.0 erp.ertus.fr
    Vary: Accept-Encoding
    Connection: close

    <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
    <TITLE>302 Moved</TITLE></HEAD><BODY>
    <H1>302 Moved</H1>
    The document has moved
    <A HREF="http://www.google.fr/?gfe_rd=cr&amp;dcr=0&amp;ei=Sf4jWqv4KOzS8AfDvaCADw">here</A>.
    </BODY></HTML>

    Status-Code: 302
    Content-Type: text/html; charset=UTF-8
    Date: Sun, 03 Dec 2017 13:38:17 GMT
    Content-Length: 268
    Location: http://www.google.fr/?gfe_rd=cr&dcr=0&ei=Sf4jWqv4KOzS8AfDvaCADw
    P3P:

    ===============================
    302
    http://www.google.fr/?gfe_rd=cr&dcr=0&ei=Sf4jWqv4KOzS8AfDvaCADw
    ===============================

    send...
    .......
    .......
    ну и так далее
    ......
     
    Адрес прокси отсюда:
    http://proxy-list.org/english/search.php?country=western-europe
     
  6. Igor68

    Igor68 Гуру

    Я применял "nc" следующий:
    nc-2.0.zip
    Дело в том, что в MOXA UC-7112-LX-Plus его нет... и пришлось его компилировать. Позже выяснилось это:

    В Debian на ПК:
    Код (Bash):

    igor@debian-i:~/coding/bash/nsite2$ nc -vnz 192.168.0.180
    Connection to 192.168.0.180 port [tcp/*] succeeded!
    igor@debian-i:~/coding/bash/nsite2$
     
    А вот тоже самое на UC-7112-Lx-plus:
    Код (Bash):

    www-data@Moxa:~$ nc -vnz 192.168.0.180
    192.168.0.1:80(Dlink-Router.Dlink) open
    www-data@Moxa:~$
     
    Потому что ответы по разному возможна не коректрая работа скриптов. Анализ ведь по текстовому сообщению от "nc".

    И важно это:
    Дело в том, что упомянутый "nc" в MOXA сообщение "cannot connect" вывводит и при отсутствии хоста, как такового... так и при отсутствии открытого порта.
    В то время как в Debian сообщение "No route to host" присутствует только при отсутствии хоста... и пинг по этому адресу не проходит. Для ускорения надо применить ключ "-w <time>" вот так:
    Код (Bash):

    str=$(nc -vnz -w 1 $_startURL $_cntport 2>&1)
     
    Так, что в малине есть возможность принципиально ускорить работу
     

    Вложения:

    • nc-2.0.zip
      Размер файла:
      335,7 КБ
      Просмотров:
      31
    Последнее редактирование: 3 дек 2017
  7. Igor68

    Igor68 Гуру

    Вот кстати странность при работе с www.yandex.ru:
    в начале получаем путь от него (при коде 302) = https://www.yandex.ru/ - это нормально
    но при повторном вызове уже с ним снова получаем код 302 и путь = http://yandex.ru - заметили без "/" в конце? Это не нормально, если путь не к файлу или с дополнениями. Страницу конечно получаем, но с кодом 400 - Испорченный Запрос, Bad Request.
    Тем не менее у www.google.com - как обычно перенапрвление на http://www.google.ru/?<всякие крокозяблы>
    потом переход и получение страницы с кодом 200 - Ok.
    www.mail.ru - возвратил ответ код 301 - 301 Постоянно перенесен, Moved Permanently., а его я не учёл... пока не учёл
     
  8. Igor68

    Igor68 Гуру

    Пост 1 - Изменено, по причине того, что nc-2.0 автоматически не умеет выбирать IP4 и IP6. Просто добавлен ключик "-4" и проверено.
     
  9. Igor68

    Igor68 Гуру

    Вот кстати:
    snapshot47.png
    Это результат прикручивания BASH + PHP(на устройстве) + JavaScript(на станицк в браузее) + HTML. А что происходит? Мы вводим URL в строку и start. Тут показана страница google.ru, но ввели www.google.com... и скрипт шатаясь и получая коды ответов вышел по перенаправлениям на google.ru. А вот если вместо URL указать какой-нибудь прозрачный прокси, и в пути укажем http:/www.google.com/ то выйдем в другое место... ну например к французам. Точнее французская страница googl.
    Изучение (познание), а так же пополнение опыта применения "nc" продолжаются.
     
    arkadyf нравится это.
  10. Igor68

    Igor68 Гуру

    Доброго времени суток!
    ...собственно хочу попросить помощи. А именно надо что бы JavaScript на странице перезапускался по setTimeout с разным параметром вот (по своему незнанию):
    Код (Javascript):
    function br1site_start(sst)
    {
        var IpUrl = document.getElementById("wIpUrl").value;
        var Path = document.getElementById("wPath").value;
        var cmd;
        var xmlhttp;
        switch(sst)
        {
            case 0:
                site_cmd = 0;
                break;
            case 1:
                cmd = "br1site.php?cmd=1&IpUrl=" + IpUrl + "&Path=" + Path + "&dtime=" + new Date().getTime();
                xmlhttp = new XMLHttpRequest();
                oldstrd="";
                oldstrres="";
                xmlhttp.onreadystatechange = function() {
                    if (xmlhttp.readyState == 4 ) {
                        if(xmlhttp.status == 200){
                            str = xmlhttp.responseText;
                            site_cmd = 255;
                            document.getElementById("mydata").innerHTML = str;
                            setTimeout('site_start(2)', 1000);
                        }
                    }
                    }
                xmlhttp.open("GET", cmd, true);
                xmlhttp.send();
                break;
            case 2:
                cmd = "br1site.php?cmd=2&IpUrl=" + IpUrl + "&Path=" + Path + "&dtime=" + new Date().getTime();
                xmlhttp = new XMLHttpRequest();
                xmlhttp.onreadystatechange = function() {
                    if (xmlhttp.readyState == 4 ) {
                        if(xmlhttp.status == 200){
                            strd = xmlhttp.responseText;
                            if (oldstrd != strd)
                                        document.getElementById("mydata").innerHTML = strd;
                            oldstrd = strd;
                            if(site_cmd > 0)
                                        setTimeout('site_start(3)', 1000);
                        }
                    }
                    }
                xmlhttp.open("GET", cmd, true);
                xmlhttp.send();
                break;
            case 3:
                cmd = "br1site.php?cmd=3&IpUrl=" + IpUrl + "&Path=" + Path + "&dtime=" + new Date().getTime();
                xmlhttp = new XMLHttpRequest();
                xmlhttp.onreadystatechange = function() {
                    if (xmlhttp.readyState == 4 ) {
                        if(xmlhttp.status == 200){
                            strres = xmlhttp.responseText;
                            if(strres != oldstrres)
                                           document.getElementById("Res").innerHTML = strres;
                            oldstrres=strres;
                            if(site_cmd > 0)
                                        setTimeout('site_start(2)', 1000);
                        }
                    }
                    }
                xmlhttp.open("GET", cmd, true);
                xmlhttp.send();
                break;
            default:
                site_cmd = 0;
                break;
        }
    }
     
    Смысл в том, что из HTML:
    HTML:
    </tr><tr>
          <td style="vertical-align: top; height: 16px;">
        <input id="br1siteStart" name="br1siteStart" onclick="br1site_start(1)" value="       START       " type="button">
          </td>
          <td style="vertical-align: top; height: 16px;">
        <input id="br1siteStart" name="br1siteStart" onclick="br1site_start(0)" value="       STOP        " type="button">
          </td>
          <td style="vertical-align: top; height: 16px;">
        <input id="getStart" name="getStart" onclick="met_start('get')" value="       GET START      " type="button">
          </td>
          <td colspan="3" rowspan="7" style="vertical-align: top; height: 9px;">
        <textarea id="Res" cols="80" rows="10" name="Res"></textarea></td>
        </tr>
    При нажатии на кнопку старт запускается функция onclick="br1site_start(1)... как видите с параметром 1. При этом на сервер передаётся запрос :
    Код (Javascript):
    cmd = "br1site.php?cmd=1&IpUrl=" + IpUrl + "&Path=" + Path + "&dtime=" + new Date().getTime();
    Который PHP скрипт вот этот:
    PHP:
    <?php
    //ini_set('display_errors',1);
    //error_reporting(E_ALL);
    /*************************************************************
    Принимает на вход параметр $content - ответ сервера (любой метод GET, POST,
    :) и возвращает чистый HTML без предваряющих HTTP-заголовков ответа.
    **************************************************************/

    function http_trim_headers($content)
    {
        return trim(substr( $content, strpos($content, "\r\n\r\n") ));
    }

    $myaddrres = gethostbyaddr($_SERVER['SERVER_ADDR']);
    $IpUrl = $_GET['IpUrl'];
    $Path = $_GET['Path'];
    $cmd = $_GET['cmd'];
    $command = "";
    switch ($cmd)
    {
        case 1:    //запуск
            $command = "rm -f /home/httpd/ramdisk/anshttp.dat &";
            $res = shell_exec($command);
            $command = "rm -f /home/httpd/ramdisk/site.html &";
            $res = shell_exec($command);
            $command = "./br1site.sh ".$IpUrl." ".$Path." &";
            $res = shell_exec($command);
            echo $res;
            break;
        case 2:    //чтение html
            $command="cat /home/httpd/ramdisk/site.html";
            $res = shell_exec($command);
            $res2 = http_trim_headers($res);
            echo $res2;
            break;
        case 3:    //стение answer
            $command="cat /home/httpd/ramdisk/anshttp.dat";
            $res = shell_exec($command);
            echo $res;
            break;
        default:
            echo "unknown cmd=".$cmd;
            break;
    }
    //
    ?>
     
    с радостью выполняет, а страничка получив ответ должна выполнить:
    Код (Javascript):
    setTimeout('site_start(2)', 1000);
    но, как вы заметили уже с параметром 2. И позже поочерёдно должны выполняться запуски с параметрами 2 и 3. Ранее тестировал и с одинарными кавычками и без них. Можно конечно и сделать независимые функции с автоперезапуском... но хочу уменьшить нагрузку и упростить.

    Заранее спасибо!
    И не ругайте меня... моя голова не только что бы шапку носить... но я в неё ещё и ем.
     
    Последнее редактирование: 10 дек 2017
  11. Igor68

    Igor68 Гуру

  12. Igor68

    Igor68 Гуру

    Братцы! Простите за мою невнимательность:
    Код (Javascript):
    setTimeout(function () { site_start(2); }, 1000);
    а должно быть:
    Код (Javascript):
    setTimeout(function run() { br1site_start(2); }, 1000);
    Извините!
    Этот вопрос снят!
     
  13. Igor68

    Igor68 Гуру

    Доброго времени суток!
    ...так всё-таки, что это за гадость?
    nsite3.zip
    Точно гадость! А именно реализация применения NetCat(NC) с прикрученным каким-никаким(такой задачи особо не ставилось) WEB-интерфейсом.
    -Сканирование хостов и открытых портов на них (нет не пинг!);
    -Поиск открытых (доступных) ВЕБ-страниц в сети(сетях) - "Start Free Site Search". Не обязательно в локалке. И построение их списка с сохранением их в файл на RAM-диске. С возможностью извлечения их в элемент выбора - "READ FREE SITES". Ну и чтение их в содержимого в таблицу(элемент).
    -Возможность перейти по какому-нибудь URL с указанием пути (http://xxxxxxxxx/). Если в качестве URL указать адрес прокси(прозрачного)... то чтение страницы будет через него.
    -Возможность реализовать запросы(для проверки) GET;HEAD;OPTIONS;TRACE к указанным URL и пути.
    -Возможность не указывать путь, а указать только URL... но уже напрямую. И... скрипт получив ответ самостоятельно перейдёт по параметру "Location:" в ответе от сервера, анализируя несколько кодов ответа. (200, 300....)
    -контролировать к какому хосту подключился ваш сервер, и какой хост подключился к вашему серверу.
    ...и это сырой тестовый вариант. Может кому интересно... и есть желание продолжить.

    Но! Есть нюанс с применяемой утилитой "sleep" и "usleep". В разных версиях Linux бывают и различия. А Именно:
    Если "sleep" умеет принимать дробные значения, такие как "sleep 0.5" (на полсекунды), то как правило отсутствует "usleep" (значения в микросекундах) в системе. А это приведет к невозможности запуска скриптов. Надо найти "usleep" и заменить на "sleep", а микросекунды заменить на дробную часть секунд 500000 - пол секунды и 0.5 - пол секунды. Всё сделано в BASH и компилировать ничего не надо. Можно применять как в консоли (благо есть подсказка при запуске), так и используя прилагаемую "шкуру" на HTML+JS+PHP. Кстати JSON выгоднее применить, чем то что там есть.
     

    Вложения:

    • nsite3.zip
      Размер файла:
      42,4 КБ
      Просмотров:
      19
  14. Igor68

    Igor68 Гуру

    Доброго времени суток!
    ...если кому довелось проявить желание тестировать и т.п. это, то настоятельно рекомендую использовать RAM-диск. Категорически не рекомендую применять SSD или SD и Flash. HDD это ещё куда не шло.