Вход | Регистрация


Информационные технологии :: Администрирование

Условие в cmd (bat)

Условие в cmd (bat)
Я
   Vetliya3451
 
10.10.18 - 06:38
Всем привет
Как проверить открыт ли порт
Например мне нужно если порт открыт то сообщить привет мир иначе сообщить порт не открыт

Как я понимаю нужно пользоваться команду telnet ip port но как ее использовать в условии?
 
 
   sFAQer
 
1 - 10.10.18 - 07:08
(0) Чей порт?
   Vetliya3451
 
2 - 10.10.18 - 07:14
К примеру rdp 3389 в сети скажем мне нужно проверить смогу ли я подрубить к серверу терминалов или нет если смогу тогда сообщить привет мир если не смогу тогда сообщить порт закрыт
   МимохожийОднако
 
3 - 10.10.18 - 07:17
   Vetliya3451
 
4 - 10.10.18 - 07:29
(3) и как же я Кингом проверю доступность сервера терминалов? К тому же если пинг выключен я спрашивал как проверить порт открыт или нет и по условию сообщить
   kittystark
 
5 - 10.10.18 - 07:33
telnet <ip> <port>
   sFAQer
 
6 - 10.10.18 - 07:37
(0) дефолтными виндовыми утилитами я так понимаю никак, т.к. телнет при успешном подключении откроет сессию и ничё не вернёт.
   Vetliya3451
 
7 - 10.10.18 - 07:42
(6) ок а условие если телнет вернул ошибку тогда иначе но я не понимаю как узнать вернул он ошибку или нет?
   sFAQer
 
8 - 10.10.18 - 07:43
(7) letnet localhost 3389 || echo 'порт закрыт'
   sFAQer
 
9 - 10.10.18 - 07:43
+ (8) letnet = telnet
   Cyberhawk
 
10 - 10.10.18 - 07:44
Можешь писать результат выполнения команды в файлик и затем анализировать его
 
 Рекламное место пустует
   sFAQer
 
11 - 10.10.18 - 07:46
(10) Что будет в файлике в случае когда telnet откроет сессию и в ней сервер ничего не скажет?
   Vetliya3451
 
12 - 10.10.18 - 08:00
(8) нечего не возвращает и долго думает!
И если бы даже и сработало то как быть с иначе?
   Cyberhawk
 
13 - 10.10.18 - 08:00
Это уже ты сам проверяй. Но Я думаю, что содержимое файлов будет отличаться и тем самым в обоих случаях будет маркер, однозначно позволяющий определить по какому пути пошла проверка
   Vetliya3451
 
14 - 10.10.18 - 08:12
Ок спасибо
   Доктор Манхэттен
 
15 - 10.10.18 - 16:54
(12) Если телнет не подключится, то он вернет ответ сразу, с ошибкой. Значит порт не открыт.
Иначе - значит порт открыт.

Нужно просто подождать какое-то время, например 1 секунду. Если ответ так и не пришел - считаем что телнет успешно подключился, и сообщаем привет мир.
   Cyberhawk
 
16 - 10.10.18 - 18:39
(15) До отлпупа проходит 20-30 секунд
   NorthWind
 
17 - 10.10.18 - 19:13
(0) как здесь уже верно сказали, "родными" утилами никак.
Если допустимо ставить сторонний софт, то можно NMAP виндовый поставить, просканировать им порт и потом поискать в его выдаче строчку closed или open в зависимости от того что надо. Результат проверить в переменной errorlevel. Примерно так:

nmap 192.168.103.9 -p 3389 | find "closed"
echo %errorlevel%

в данном случае если порт открыт, то будет возвращена единица, иначе ноль.
   NorthWind
 
18 - 10.10.18 - 19:13
   Доктор Манхэттен
 
19 - 10.10.18 - 22:02
(16) Мне сразу пишет. Если точнее, меньше десятой доли секунды приходит ответ если порт не открыт, потому что глазом даже задержки не видно.
   spectre1978
 
20 - 10.10.18 - 22:34
(19) так или иначе это не решает предложенной задачи. В случае открытия порта телнет простартует сессию, которая повиснет на неопределенное время, и чего с ней делать - не очень понятно. Это годится для интерактивной проверки, но не для работы в батнике.
   Доктор Манхэттен
 
21 - 10.10.18 - 23:06
(20) Понятно что с ней делать - гасить нафиг. Что непонятного?
   sechs
 
22 - 10.10.18 - 23:12
   Доктор Манхэттен
 
23 - 10.10.18 - 23:22
(0) Если у тебя виндовс 10, то можно через курл, вот пример:

curl -s ya.ru:33 && echo Privet Mir || echo Port Ne Otkrit
   Доктор Манхэттен
 
24 - 10.10.18 - 23:25
(22) Эй, интернетом нельзя пользоваться. Это задача на сообразительность.
   trdm
 
25 - 11.10.18 - 06:44
netstat | find /C ":3389 "
   sechs
 
26 - 11.10.18 - 08:11
(24) > интернетом нельзя пользоваться
... написал какой-то чувак в интернете
   NorthWind
 
27 - 11.10.18 - 10:33
(21) типа, сначала создать себе трудности, а потом их мужественно преодолеть путем пристукивания процесса телнета? Ну да, ну да. Через попу к звездам.
   Доктор Манхэттен
 
28 - 11.10.18 - 11:23
(25) -1

(26) Ахаха! Подколол, молодец )))

(27) Per asinum ad astra. В (23) я предложил более удобное решение.
   eklmn
 
29 - 11.10.18 - 11:45
вставлю свой вариант )

psping 1.1.1.1:3389
   Cyberhawk
 
30 - 11.10.18 - 11:46
(29) В Винде не работает. Не кроссплатформненько
   eklmn
 
31 - 11.10.18 - 11:54
(30) а батник кросплатформенно?
естесвенно не работает, его ж скачать надо с сайта майкрософта
   Доктор Манхэттен
 
32 - 11.10.18 - 14:57
(29) 'psping' is not recognized as an internal or external command,
operable program or batch file.
   Доктор Манхэттен
 
33 - 11.10.18 - 14:59
(31) Батник не надо качать, он встроен в винду еще с тех времен винда было досом.
 
 


Список тем форума
Рекламное место пустует  Рекламное место пустует
Здесь можно задать вопрос "Как сделать?" и получить кучу ответов, что тебе это делать не надо. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует