Q&A

  • 네트윅 사용 유/무 확인할수 있는 방법 알려주세요..ㅠ.ㅠ
안녕하세요....^^;

  프로그램실행시 (Form Create 할때..)  현재 사용중인 PC가 네트웍을 사용할 수있는 상태인지
  아니면,  사용불가능 상태인지를 확인할 수있는 Win API가 있는지를 알고 싶어 문의 드립니다.

제가 구현하고자 하는 방법은
   UTP케이블이 꼽혀져서 네트웍을 사용할 수있는 상태이면 DB 서버에 연결해서  입력데이터를 DB작업과
   병행하고 UTP케이블이 꼽혀져서 있지 않아서 네트웍을 사용할 수있는 없는 상태 또는 네트웍속성에서
  사용중지를 했을때는 단독으로 입력데이터를 처리하는 프로그램을 구현할려고 합니다.

검색을 해보니... 이러한 방법으로 할수 있다고 하는거 같은데...
If GetSystemMetrics(SM_NETWORK) AND $01 = $01 then
     ShowMessage('이 컴퓨터는 NetWork에 연결되어 있습니다.')
  Else
     ShowMessage('이 컴퓨터는 NetWork에 연결되어 있지 않습니다.');

제가 보기엔 ..이건 하드웨어적인 즉, PC에 설치 유/무 상태를 체크하는 것이 아닌가 보여집니다.
  
고수님들의 답변 부탁드리겠습니다 ..^^;;;
2  COMMENTS
  • Profile
    마이크로김 2007.06.21 23:51
    서버로 핑을 날려 보시지요!
    요즘은 서버에 핑을 막아놔서


  • Profile
    마이크로김 2007.07.21 01:13

    indy component ping  기능이 있습니다.

    ICMPReply 이벤트
      if (ReplyStatus.MsRoundTripTime = 0) then
        sTime := '<1'
      else
        sTime := '=';

      lstReplies.Items.Add(Format('%d bytes from %s: icmp_seq=%d ttl=%d time%s%d ms',
        [ReplyStatus.BytesReceived,
        ReplyStatus.FromIpAddress,
        ReplyStatus.SequenceId,
        ReplyStatus.TimeToLive,
        sTime,
        ReplyStatus.MsRoundTripTime]));


            try
                    ICMP.OnReply := ICMPReply;
                    ICMP.ReceiveTimeout := 1000;

                    ICMP.Host := Trim( '211.111.111.111');
                    for I := 1 to 2 do
                            ICMP.Ping;
            except
                    Label7.Caption := 'OFF-LINE';
                    Label7.Font.Color := clRed;
            end;