다음 원격 IP가 맞는지 확인해야 합니다.운영 체제운영 체제 또는 기타이기다
예
12.43.223.4
23.54.67.3
23.5.6.3
우리는 Linux 시스템(redhat)을 가지고 있습니다. 이 시스템에서 원격 시스템이 Linux인지 아니면 다른 시스템인지 식별해야 합니다.
내가 아는 한 nmap을 통해 이를 식별할 수 있습니다.
그런데 프로덕션 머신에는 nmap이 설치되어 있지 않아서 다른 방법을 찾고 싶습니다.
그렇다면 원격 시스템이 Linux인지 아니면 다른 것인지 확인하는 방법에 대한 제안이 있으십니까? (nmap을 통하지 않음)
답변1
귀하의 질문을 올바르게 이해했다면 귀하는 묻고 있는 것입니다.
네트워크에 로그인하지 않고 컴퓨터의 운영 체제를 식별하는 방법
이는 허용되지 않습니다. 네트워크가 TCP/IP 기반의 일반적인 IP(인터넷 프로토콜)라고 가정하면 네트워크의 모든 컴퓨터 시스템은 이 프로토콜을 기반으로 통신합니다. 그것이 처리해야 할 전부라면 다음을 수행하십시오.
- 첫째, 핑 등에 응답하지 않는 등 네트워크의 컴퓨터가 보이지 않도록 구성할 수 있습니다.
- 그러나 이 컴퓨터 시스템이 네트워크에 응답하거나 응답한다는 표시가 나타나면 Windows, Linux, macOS, Android 또는 다른 시스템인지 어떻게 추론할 수 있습니까? 당신은 할 수 없습니다: IP/TCP 프로토콜은 이러한 일을 지원하지 않습니다.
시스템이 전송된 모든 패킷의 TCP/IP 헤더에 이러한 정보를 포함할 수 있을 만큼 충분히 낮은 수준으로 구성되어 있다면 아마도 사용할 수 있을 것입니다. 그러나 이것은 매우 사용자 정의입니다. 그렇지 않으면 시스템에 로그인할 수 없으면 제가 아는 확실한 방법이 없습니다. SSH 프로토콜은 운영 체제와 독립적이기 때문에 SSH 프로토콜을 통해 시스템에 로그인하는 경우에도 마찬가지입니다. 따라서 컴퓨터 시스템이 포트 22에서 SSH를 통해 응답하는 것을 보면 운영 체제가 있는 모든 컴퓨터 장치가 이를 따르기 때문에 이 작업을 수행할 수 있습니다. SSH 프로토콜은 인터넷 프로토콜 위에서 발생합니다.
물론 이것이 IP가 그토록 뛰어난 이유입니다. 동일한 프로토콜을 따르는 한 운영 체제에 관계없이 모든 장치 간의 통신을 허용합니다.인터넷 프로토콜. 예를 들어, 당신이 남자인지, 여자인지, 아니면 다른 특징이 있는지 알 필요가 없습니다. 주어진 언어 프로토콜(이 경우 영어)을 따르면 어느 정도 의사소통이 가능합니다.
당신은 읽고 싶을 수도 있습니다IPV4 위키피디아 기사, 인터넷의 역사를 제외하고.
답변2
for i in hostname1 hostname2;
do
ssh -o 'StrictHostKeyChecking no' $i -A <<'EOF'
uname -a | awk '{if($0 ~ /Linux/){print "Its Linux os"}else{print "its not linux os"}}'
EOF
done