OS가 Linux인지 다른지 확인하는 방법은 무엇입니까?

OS가 Linux인지 다른지 확인하는 방법은 무엇입니까?

다음 원격 IP가 다음과 같은지 확인해야 합니다.리눅스OS 또는 기타이기다

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 프로토콜은 OS 독립적이기 때문에 동일합니다. 따라서 컴퓨터 시스템이 포트 22에서 SSH를 통해 응답하는 경우 운영 체제에 관계없이 모든 컴퓨터 장치에서 이를 수행할 수 있습니다. SSH 프로토콜을 따르기 때문에 인터넷 프로토콜 위에서 발생합니다.

물론 이것이 IP가 그토록 뛰어난 이유입니다. 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

관련 정보