ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 핑 테스트
    분류전 2010. 1. 29. 09:09
    반응형

    function ping($host) {
    //전송 데이터 (32byte 테스트)

    $package="\x08\x00\x19\x2f\x00\x00\x00\x00\x70\x69\x6e\x67";

    //icmp프로토콜 소켓생성
    $socket=socket_create(AF_INET,SOCK_RAW,getprotobyname('icmp'));

    //타임아웃 설정
    socket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,array("sec"=>1,"usec"=>0));

    //소켓연결!
    socket_connect($socket,$host,null);

    //딜레이 시간 기록
    list($start_usec,$start_sec)=explode(" ",microtime());
    $start_time=((float)$start_usec+(float)$start_sec);

    socket_send($socket,$package,strlen($package),0);

    //데이터를 받아온다.
    $result=-1;

    $flag="";
    $flag=@socket_recv($socket, $buf, 1024,0);
    if($flag!=""){ //데이터를 받아왔다면 걸린시간 계산
    list($end_usec,$end_sec)=explode(" ",microtime());
    $end_time=((float)$end_usec+(float)$end_sec);

    $total_time=$end_time-$start_time;

    $result=$total_time;
    }
    //소켓종료
    socket_close($socket);

    //결과 리턴
    if($result==-1) return -1; //테스트 실패했을경우 -1리턴
    else return round($result*1000,3); //소수점 3째자리까지 반올림 (시간 단위는 ms)
    }

    ping("아이피주소") 식으로 사용하면 됩니다.

    사용하기전에 PHP확장(PHP Extension)에서 php_sockets.dll 을 추가해줘야합니다.

    '분류전' 카테고리의 다른 글

    IP Scanner  (0) 2010.02.10
    Mp3toKmp  (0) 2010.02.04
    VMWARE로 Ljnux RedHat 9.0 설치하기  (0) 2010.01.27
    리눅스 다운 받을 때 i386과 x86_64의 차이점  (0) 2010.01.27
    핫픽스(Hot Fix)란?  (0) 2010.01.27
Designed by Tistory.