Q&A

  • Ping의 결과를 최대한 빠르게 알 수 방법에 대한 조언을 ...
안녕하세요?

고객의 IP를 알고 있다고 가정할 경우, 현재 고객의 PC가 인터넷에 연결되었는지 확인하기 위한 방법으로는 주로 Ping을 이용하잖습니까? 아래코드처럼요..(ICS 컴포넌트의 Ping 이용)

그런데 고객PC가 인터넷에 연결이 된 경우에는 빠르게 응답을 하는데, 연결이 안된 경우에는 timeout 동안 기다리다가 결과를 알려주던데요, 응답시간을 최대한 빠르게 하려면 timeout을 어느 정도의 값을 주어야 할까요?  Ping의 응답 결과를 1초라도 빨리 알아야 하거든요.

그리고 Ping외에 IP를 통한 인터넷 연결유무를 최대한 빨리 알 수 있는 방법이 있으면 도움을 주시기를 부탁드립니다.

procedure TForm1.Button1Click(Sender: TObject);
begin
Ping1.Address := 고객IP;
Case (Ping1.Ping > 0) of
    True  : Caption := '인터넷 됨';
    False : Cattion := '인터넷 안됨';
End;
end;
3  COMMENTS
  • Profile
    이중철 2005.10.06 19:38
    답변을 드리면서 먼저 죄송하다고 말씀드려야 겠네요

    제가 이것이 밥줄이라 소스오픈은 안되고요

    올해초 테스트하기 위해 만들었던 프로그램을 드릴께요

    일단 네트워크 Bandwidth가 충분하고 IPS등이 없을 경우 이론적으로 10,000 Point  Alive 체크시에도

    2초내에 알 수 있습니다.

    참고적으로 전 지연시간을 통한 통계적 분석을 위하여 만들고 있는데 이 프로그램은 지연시간이

    정규분포을 가진다고 가정하고 만들었습니다. 그러나 실제적으로 감마분포를 가지더군요

    기본설정으로는 Interval 1,000 micro sec, Delay 1초 , 그리고 5회 반복 체크 입니다.

    그리드에서 항목을 더블클릭하면 해당 차트가 나옵니다.

    그리고 프로그램 내부에 Iplist.txt를 수정(파일 가져오기^^)하고 Interval Time를 조절해서 사용해 보세요

    Interval Time은 인터넷라인이 100M이면 20Micro Sec 이하에서도 잘 작동 됩니다.

    기본은 2Mbps 기준으로 설정된 것 입니다.

    아 참 공식적인 기법은 Ping flood 입니다.

    소스오픈하지 못해서 참 죄송하게 생각합니다.

    프로그램 내부에는 통계모듈과 ICMP Flood 모듈, 메모리 DB(AVL, T Tree) 모듈이 들어 있어서 ㅠㅠ

    제 밥줄이라 ..

    그럼 이만..
  • Profile
    이중철 2005.10.06 19:44
  • Profile
    고영호 2005.10.06 22:26
    시간을 내어 주셔서 귀한 샘플 예제를 제공해 주셔서 감사합니다.

    늘 건강하세요.