Форум Kerio-rus

Форум Kerio-rus (http://kerio-rus.ru/forum/index.php)
-   Курилка (http://kerio-rus.ru/forum/forumdisplay.php?f=312)
-   -   Кубышка редкого софта (http://kerio-rus.ru/forum/showthread.php?t=10781)

alexnasa 30.09.2020 08:32

Кубышка редкого софта
 
Цитата:

Всё, что накоплено непосильным трудом!
— Три магнитофона, три кинокамеры заграничных, три портсигара отечественных, куртка замшевая... три... *
Тут забился я со знакомым одним на предмет батника или скрипта для отправки команд (напр. reboot) кинетикам/ коммутаторам/ камерам/ и т.п. Короче хочу поделиться со всеми этим скриптом, работающим по телнет.
PHP код:

;Связка из двух функцийдля автоматизации telnet-соединенийвсе построено на принципе ожидания определенной строки/символа.
;
Первая это сценарий для работы с устройством (может меняться в зависимости от нужд и типа хоста)
;
Вторая непосредственно работа с telnet
;Функции не универсальныпри необходимости их можно переделать под конкретные условия.
$sIp '192.168.6.75'    IP-адрес хоста
$sLogin 
'admin'            логин
$sPass 
'qwerty'            пароль
$sForWait 
''
$sOut ''

$sOutput _scenario($sIp$sLogin$sPass)
Switch @
error
    
Case 0
        MsgBox
(0'Done''Сценарий выполнен успешно' & @CRLF 'листинг работы в консоли')
        
ConsoleWrite($sOutput & @CRLF)
    Case 
1
        MsgBox
(16'Error''Ошибка службы TCP')
    Case 
2
        MsgBox
(16'Error''Ошибка при создании соединения')
    Case 
3
        MsgBox
(16'Error''Устройство не отвечает')
    Case 
4
        MsgBox
(16'Error''Вышло время при ожидании данной строки: ' $sForWait & @CRLF 'Листинг при ожидании:' & @CRLF $sOut)
EndSwitch

Func _scenario($sInIp$sInLogin$sInPass)
    
TCPStartup()
    If @
error Then Return SetError(1)               ; ошибка службы
    $socket 
TCPConnect($sInIp23)                ; создаем сокет с хостом по 23 порту
    
If @error Then
        TCPCloseSocket
($socket)
        
TCPShutdown()
        Return 
SetError(2)                          ; ошибка при создании сокета
    
EndIf
    
$sForWait ':'
    
$sStream _StartListener($socket$sForWait)   ; ждем приглашение ':' для ввода логина
    
If @error 1 Then
        TCPCloseSocket
($socket)
        
TCPShutdown()
        Return 
SetError(3)                          ; хост не отвечает
    
ElseIf @error 2 Then
        TCPCloseSocket
($socket)
        
TCPShutdown()
        Return 
SetError(4)                          ; вышло время ожидания строки от хоста
    
EndIf
    
TCPSend($socket$sInLogin & @CRLF)             ; отсылаем логин
    $sForWait 
':'
    
$sStream _StartListener($socket$sForWait)   ; ждем приглашение ':' для ввода пароля
    
If @error 1 Then
        TCPCloseSocket
($socket)
        
TCPShutdown()
        Return 
SetError(3)                          ; хост не отвечает
    
ElseIf @error 2 Then
        TCPCloseSocket
($socket)
        
TCPShutdown()
        Return 
SetError(4)                          ; вышло время ожидания строки от хоста
    
EndIf
    
TCPSend($socket$sInPass & @CRLF)              ; отсылаем пароль
    $sForWait 
'>'
    
$sStream _StartListener($socket$sForWait)   ; ждем '>' для ввода команд
    
If @error 1 Then
        TCPCloseSocket
($socket)
        
TCPShutdown()
        Return 
SetError(3)                          ; хост не отвечает
    
ElseIf @error 2 Then
        TCPCloseSocket
($socket)
        
TCPShutdown()
        Return 
SetError(4)                          ; вышло время ожидания строки от хоста
    
EndIf
    
TCPSend($socket'system reboot' & @CRLF)             ; отсылаем команду перезагрузки Кинетика
    $sForWait 
'>'
    
$sStream _StartListener($socket$sForWait)   ; ждем '>' после окончания выполнения команды
    
If @error 1 Then
        TCPCloseSocket
($socket)
        
TCPShutdown()
        Return 
SetError(3)                          ; хост не отвечает
    
ElseIf @error 2 Then
        TCPCloseSocket
($socket)
        
TCPShutdown()
        Return 
SetError(4)                          ; вышло время ожидания строки от хоста
    
EndIf
    
TCPCloseSocket($socket)
    
TCPShutdown()
    Return 
$sStream                                 выдача листинга
EndFunc

Func _StartListener
($sock$sWait$iTimer 30000)
    
$iTimer Int($iTimer)                                              ; перевод времени таймера из строчнойй формы в цифровую
    $sOut 
''
    
$hTimer TimerInit()                                               ; инициирование таймерадля ограничения времени ожидания ответов
    
While 1
        $sRcv 
TCPRecv($sock10000)                                   ; чтение данных с порта
        
If StringLen($sRcv) <> And StringInStr($sRcv$sWaitThen    если пришли данныеи они содержат искомую строку выход с выводом
            $sOut 
$sRcv
            
Return $sOut
        
ElseIf StringLen($sRcv) <> 0 Then                               если пришли данныено они не содержат искомую строку ждем
            $hTimer 
TimerInit()                                       ; заново инициируем таймер уже для ожидания нужной строки
            $sOut 
$sRcv
            
If StringInStr($sRcv'--More--'Then                      пришла строка "--More--" (при многостраничной выдаче)
                
TCPSend($sock' ')                                     ; отсылаем пробел для "пролистывания"
                
$hTimer TimerInit()                                   ; заново инициируем таймер
            
EndIf
            Do                                                          ; 
чтения данных с порта в цикледо прихода нужной строки
                $sRcv 
TCPRecv($sock10000)
                If 
StringLen($sRcv) <> 0 Then
                    
If StringInStr($sRcv'--More--'Then              пришла строка "--More--" (при многостраничной выдаче)
                        
TCPSend($sock' ')                             ; отсылаем пробел для "пролистывания"
                        
$hTimer TimerInit()                           ; заново инициируем таймер
                    
EndIf
                    
$sOut &= $sRcv
                
EndIf
                
Sleep(5)
                If 
TimerDiff($hTimer) > $iTimer Then Return SetError(2) ; время ожидания строки вышло выход с ошибкой
            Until StringInStr
($sRcv$sWait)
            Return 
$sOut                                                нормальный выход с выводом
        
EndIf
        
Sleep(50)
        If 
TimerDiff($hTimer) > $iTimer Then Return SetError(1)         ; время ожидания какого-либо ответа от хоста вышло выход с ошибкой
    WEnd
EndFunc 

Тем, кому лень знакомиться с языком AutoIT достаточно скачать паку с софтом и в ней находится редактор SciTE
[Для просмотра данной ссылки нужно зарегистрироваться]
и прямо в редакторе запусить этот тектовик-скрипт нажав на F5. Если скрипт работает ОК можно сохранить результат, скомпилировав его в экзешник.

Оно-то, конечно! Многие скажут -для телнета полно утилит, но то чужой софт, а тут свой сырец!
А ещё скажут -телнет давно не комильфо! Однако-ж столько железа старого с ним связано, и иногда говоришь -"ну хорошо, что хоть телнет в этой рухляди есть!".
Ну и вот "вопрос в студию" - а как у вас, коллеги? Чем управляете и как? А по SNMP тоже управлять железом случается? А как и чем?

Ну, а пока вы мне отвечаете, я поделюсь уникальной утилитой от великого и могучего Симантека (уж не знаю приложил ли к ней руку Питер Нортон, но утилита сия была тщательно стерта из Сети -наверное по причине недовольства мелкомягких).
Утилита сия дополняет стоковый загрузчик MS ещё одной клавишей. Появляется "горячая" клавиша F3, которая при загрузке ПК позволяет загрузится не со второго- (третьего и т д) раздела, а против всякой логики с неактивного (!!!) первого (ну если там лежит-отдыхает альтер-винда, конечно). Конечно, это работает если вы предусмотрительно поправили разделы HDD и винда у вас на втором (третьем и т д) и загрузчик её и активный этот раздел -как положено по феншую.
А на первом только "альтервинда".
Итак-сама утилита-патч : [Для просмотра данной ссылки нужно зарегистрироваться]
Подробности чуть позже добавлю!

exchar 30.09.2020 10:04

Re: Кубышка редкого софта
 
Цитата:

Сообщение от alexnasa (Сообщение 163891)
Тут забился я с знакомым одним на предмет батника.

не понял суть вопроса

alexnasa 30.09.2020 11:21

Re: Кубышка редкого софта
 
Цитата:

Сообщение от exchar (Сообщение 163894)
не понял

Сорри - траблы с буком -сейчас продолжу!

exchar 30.09.2020 15:01

Re: Кубышка редкого софта
 
Цитата:

Сообщение от alexnasa (Сообщение 163891)
кому лень знакомиться с языком AutoIT

autoit это отлично
регулярно использую.
Цитата:

Сообщение от alexnasa (Сообщение 163891)
Многие скажут -для телнета полно утилит

...но лучше править свою утилиту, чем ждать у моря погоды )

alexnasa 30.09.2020 15:12

Re: Кубышка редкого софта
 
Цитата:

Сообщение от exchar (Сообщение 163909)
лучше править свою утилиту, чем ждать у моря погоды )

при этом прокачивая собственный мозг и собственные возможности.

В автоит я когда-то сделал вочдог, который лез в настройки сервера и следил за архивами камер. Каждые 2 часа я получал документ, официально и де юре, подтверждающий наличие кадров по каждой из *** камер объекта. А до этого мне СБ любила задавать вопрос рандомно по времени суток-
"а ТОЧНО всё ок? Вот это ты так уверен ДА? А "ЕСЛИ", то что с тобой сделаем-а???"

exchar 30.09.2020 16:13

Re: Кубышка редкого софта
 
Цитата:

Сообщение от alexnasa (Сообщение 163911)
этого мне СБ любила задавать вопрос рандомно по времени суток-
"а ТОЧНО всё ок? Вот это ты так уверен ДА? А "ЕСЛИ", то что с тобой сделаем-а???"

с санкции дирекции выдать доступ на просмотр камер выделенному человеку от СБ, если они сами хотят следить за наличием и актуальностью видеоархива.

alexnasa 30.09.2020 16:36

Re: Кубышка редкого софта
 
Цитата:

Сообщение от exchar (Сообщение 163914)
если они сами хотят

они считают, что обязаны -мы 24-365.

exchar 30.09.2020 17:14

Re: Кубышка редкого софта
 
Цитата:

Сообщение от alexnasa (Сообщение 163915)
они считают, что обязаны -мы 24-365.

обязанности - в трудовом договоре, должностной инструкции и указаниях дирекции.
остальное - решается через общее или прямое начальство, вплоть до дирекции.

alexnasa 30.09.2020 17:28

Re: Кубышка редкого софта
 
Цитата:

Сообщение от exchar (Сообщение 163918)
обязанности - в трудовом договоре

обязанности по-понятиям. В моногороде можно собрать вещички в любой момент..

alexnasa 05.10.2020 08:35

Re: Кубышка редкого софта
 
Ухтыы! Универ Кубинский [Для просмотра данной ссылки нужно зарегистрироваться] держит довольно неслабый архивчик офиц. дистрибутивов!
[Для просмотра данной ссылки нужно зарегистрироваться]

naliman 05.10.2020 10:43

Re: Кубышка редкого софта
 
всё что мне когда-либо требовалось, я находил либо в [Для просмотра данной ссылки нужно зарегистрироваться] ru-board либо на [Для просмотра данной ссылки нужно зарегистрироваться]

alexnasa 05.10.2020 11:37

Re: Кубышка редкого софта
 
Цитата:

Сообщение от naliman (Сообщение 164002)
я находил

была у меня ориг ссылка на 2008R2 ( [Для просмотра данной ссылки нужно зарегистрироваться] )
и захотелось остальные версии

exchar 05.10.2020 14:02

Re: Кубышка редкого софта
 
Цитата:

Сообщение от alexnasa (Сообщение 163999)
неслабый архивчик офиц. дистрибутивов

очень неслабый
и там всякий hiren boot cd есть, поэтому с официальностью... несколько... =)

alexnasa 05.10.2020 15:15

Re: Кубышка редкого софта
 
Цитата:

Сообщение от exchar (Сообщение 164008)
всякий hiren boot cd есть, поэтому с официальностью

хирену на хвост наступили лет 10 назад и он "причесался". Но вот давно его не смотрел опять фордебачит?

exchar 05.10.2020 15:34

Re: Кубышка редкого софта
 
Цитата:

Сообщение от alexnasa (Сообщение 164009)
хирену на хвост наступили лет 10 назад и он "причесался". Но вот давно его не смотрел опять фордебачит?

насколько я не помню, примерно с 2015 года хирена нового нет. увы.

Добавлено через 38 секунд

но старый хирен там от этого более лицензионным не становится :D

alexnasa 05.10.2020 15:38

Re: Кубышка редкого софта
 
Цитата:

Сообщение от exchar (Сообщение 164010)
старый хирен там от этого более лицензионным не становится

тем ценнее архивчик для нас! В старом хирене я взял и юзаю относительно свежую версию Norton Ghost 11. Спасибо ей! Спас как-то не дешевый сервак Трассира. Шеф ждал покупателя и решил обновить ось, пока тот едет. Хорошо, что я сохранил системный диск в образ перед процедурой.

naliman 06.10.2020 19:32

Re: Кубышка редкого софта
 
Цитата:

Сообщение от exchar (Сообщение 164008)
и там всякий hiren boot cd есть, поэтому с официальностью... несколько... =)

так это ж КУБА!
немного коммунизма-социализма под пятой вмериканских санкций
им пох, и это правильно
когда то давно натыкался на подобный ресуср, только иранский - там пипец, чего только не было, и всё соответственно с ключеделами, кряками, патчами и прочими таблетосами
ребята кладут болт на авторское право.ю лицензионность и прочее, и в сложившихся условиях (ИМХО) они правы
ибо нехуй!

alexnasa 06.10.2020 19:38

Re: Кубышка редкого софта
 
Цитата:

Сообщение от naliman (Сообщение 164044)
так это ж КУБА!

а я не спроста сразу произнёс это ключевое слово. Намекал))
и вот ещё другой архивчик pinguin.dinus.ac.id/iso/

naliman 06.10.2020 19:49

Re: Кубышка редкого софта
 
Цитата:

Сообщение от alexnasa (Сообщение 164045)
Намекал))

ну ибать!

Patria о muerte!

exchar 06.10.2020 21:51

Re: Кубышка редкого софта
 
Цитата:

Сообщение от naliman (Сообщение 164044)
так это ж КУБА!
немного коммунизма-социализма под пятой вмериканских санкций

да я так - отрыть нелиценз среди лиценза )


Текущее время: 12:21. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2021, vBulletin Solutions Inc. Перевод: zCarot