Trace-Port, PowerShell и други скриптове
Публикувай календар
« дек | февруари » | |||||
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | единадесет | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | тридесет | 31 |
Скрипт за улавяне на връзка към посочения порт и извеждане на всичко, което идва към него. Ако посочите ключа -Echo, той ще отговори на клиента със същите данни, които изпраща. По подразбиране той слуша на порт 23.
Всъщност просто пренаписан от пример в MSDN.
Свързани сме чрез telnet: telnet 192.168.1.99 333
Резултатът е масив от байтове и понякога просто се нуждаете от текст:
Скриптът има един минус, не е многонишков, изпълнява се в същия процес като PowerShell и съответно от момента на стартиране, докато връзката се прекъсне, няма да реагира на Ctrl + C ... Но засега това ми е достатъчно, мързи ме да копая по-нататък 🙂
хареса това:
Изправени пред такъв проблем. Горният скрипт слуша порт и изпълнява определени действия в зависимост от входящите команди.
И в една функция има нужда от пауза между действията. Използвам Start-Sleep 1. След това, ако прекъснете връзката, не можете да установите нова, защото портът е зает. Ако премахнете Start-Sleep, тогава всичко е наред. Как мога да принудя порт да бъде освободен? И защо портът не се затваря, когато $client.Close() $listener.Stop() Въпреки че работата е завършена правилно?
Изправени пред такъв проблем. По-високопосоченият скрипт слуша порта и изпълнява определени действия, в зависимост от входящите команди.
И в една функция има нужда от пауза между действията. Използвам Start-Sleep 1. След това, ако прекъснете връзката, не можете да установите нова, защото портът е зает. Ако премахнете Start-Sleep, тогава всичко е наред. Как мога да принудя порт да бъде освободен? И защо портът не се затваря, когато $client.Close() $listener.Stop() Въпреки че работата е завършена правилно?
И бих искал да знам повече. Възможно ли е телнет със сертификати? Не искам никой да може да отваря telnet и да изпраща команди до сървъри, които ще се изпълняват там с администраторски права. Получавате дупка. Бих искал скриптът по някакъв начин да провери наличието на сертификат за свързаното лице. Възможно ли е да?
Опитайте да използвате [threading.thread]::sleep(1000) време в ms.
telnet се използва тук просто за свързване към порт и изпращане на текстови данни. Можете също да използвате netcat например. Съответно функциите за сигурност тук са само тези, които вие сами пишете. Можете също така да свържете проверката на сертификати и криптиране 🙂 Или можете да вземете готовия протокол 🙂