2010-02-16 3 views
0

C#을 사용하여 원격 컴퓨터가 이미 켜져 있는지 (재부팅/이미지 재구성 후) 확인하고 싶습니다.컴퓨터가 UP/ALIVE인지 확인

필자가 생각할 수있는 것은 PING 명령을 실행하고 컴퓨터가 응답하는지 확인하는 것입니다. 어떤 우아한 방법이 있습니까?

감사합니다. 내 관심

편집

하나는 PING은 일반적으로 ONCE 기계가 시작 윈도우 반응이다. 그때까지는 일부 서비스가 시작되지 않았을 수 있습니다. Anders Lindahl 대답을 참조하십시오.

답변

7

핑이 본질적으로 당신이하려고하는 것을 정확하게하기 위해 설계되었다는 것을 고려하면 (기계가 사용 가능하고 응답 하는지를보십시오), 나는 꽤 우아하다고 말할 수 있습니다. 왜 복잡한 것들입니까?

+0

하나는 PING은 일반적으로 ONCE 기계가 시작 윈도우 반응이다 < 대상입니다. 그때까지는 일부 서비스가 시작되지 않았을 수 있습니다. Anders Lindahl 대답을 참조하십시오. – Ian

+0

예. 그러나 OP는 그들이 특정 서비스에 의존하고 있다고 진술하지 않았지만 기계가 작동하는지 알기를 원했습니다. 어느 쪽이든, 두 대답 모두 유용합니다. :) – Amber

0

왜 핑 (ping)이 좋지 않다고 생각하십니까? 나는 당신이 호스트를 무언가를 보낼 주위에 얻을 것이라고 생각하고 그것이 응답하는지 확인하고 실제로 ping보다 작은 프로그램이 있는지 확인하십시오. 그리고 ping을 사용하여 직접 구현하지 않아도됩니다.

0

나는 우아하지는 않지만 (a) 일부 기계는 잠재적 DoS 공격으로서 핑에 응답하지 않을 수 있으며 (b) 기계에 대한 액세스 권한은 아마도 PowerShell 일 수 있습니다 스크립트를 사용할 수 있습니다. PowerShell은 인트라넷에서 컴퓨터의 전원이 켜져 있는지 확인하고 다양한 컴퓨터 서비스의 상태를 확인하고 해당 컴퓨터에서 SQL 데이터베이스에 액세스하고 응용 프로그램 서비스를 가져 오거나 내릴 수 있습니다. 다시 말하면 C# 직업에 적합한 도구가 아닐 수도 있습니다.

1

핑은 일반적으로 컴퓨터가 올바르게 재부팅되었는지 확인하기에 충분하지만 컴퓨터의 어떤 서비스에 의존하여 시작하면 명시 적으로 확인할 수 있습니다. 그것을 쿼리 WMI를 사용하여 살펴 유무 :

1

을 NMAP 명령 의 nmap -sS -p0 -sV -O

< 대상의 사용에 의해 >는 단일 IP, 호스트 이름 또는 서브넷 일 수 있습니다.

-sS TCP SYN 검사 (또한 반 개방 또는 스텔스 스캐닝이라고도 함)

-P0 옵션을 사용하면 ICMP 핑을 끌 수 있습니다.

-sV 옵션은 버전 감지를 원격 운영 체제

을 식별 할 수

-O 플래그 시도 할 수

기타 옵션 :

-A 옵션은 OS 지문 및 버전 감지

모두 가능 - v보다 자세한 v를 사용하려면 -v를 두 번 사용하십시오.

의 nmap -sS -p0 -A -v 내 관심>

관련 문제