Протокол S SH не предоставляет никакой информации об удаленной системе, кроме ее версии протокола. Тем не менее, часто поставщики включают строку в строку протокола. Например, если вы выполните nc gitlab.com 22 </dev/null | head -n 1
, вы можете сказать, что GitLab работает с Ubuntu.
Однако не все удаленные системы предоставляют эту информацию, поэтому для надежного теста вам, вероятно, потребуется войти в систему. , Как уже упоминалось, вы можете запустить uname
в Unix системах и cmd /c ver
в Windows системах, чтобы узнать, в какой ОС вы работаете. Обратите внимание, что последний не будет работать на Windows, если вы войдете в систему на базе MinGW bash на Windows, поскольку /c
будет переписан как C:\
; вам нужно удвоить значение sla sh или использовать uname
.
Я не знаю ни одной команды, которую вы можете вызвать, которая будет работать во всех системах, так что вы, вероятно, получите сделать несколько запросов оболочки. Возможно, вам лучше сделать это, используя библиотеку S SH, поскольку двоичный файл OpenS SH будет печатать любой баннер с удаленной стороны, хотите вы этого или нет, и это может быть перепутано с выводом, полученным с удаленного сторона.