2016-06-15 5 views
0

나는 인터넷에 연결되어 있는지 여부를 알려주는 프로그램을 만들었습니다. 이제 www.google.com으로 핑 (ping)하고 ping 시간을 ms로 표시하겠습니다. 제 3 자 소프트웨어를 사용하거나 아무 것도 다운로드하고 싶지 않습니다.파이썬에서 ping 시간 가져 오기

편집 : 내 코드입니다 : 내가 인터넷에 연결하고있는 경우

def is_connected(): 
    try: 
    # see if we can resolve the host name -- tells us if there is 
    # a DNS listening 
    host = socket.gethostbyname(REMOTE_SERVER) 
    # connect to the host -- tells us if the host is actually 
    # reachable 
    s = socket.create_connection((host, 80), 2) 
    return True 
    except: 
     pass 
    return False 

위의 코드는 날을 알려줍니다. 내가 원하는 것은 웹 사이트의 핑 (ping)을 보여주는 간단한 방법입니다. 이 질문은 내 질문에 답변이 없으므로 중복되지 않습니다.

+1

코드는 어디에 있습니까? 정확히 우리에게서 원하는 것이 무엇입니까? :) –

+0

이제 질문은 "내가 완전히 다른 무엇인가하는 코드를 가지고 있습니다. 내가하고 싶은 일을하는 법을 보여주세요."또한 주제가 아닌 것입니다. (그러나 중복 된 답변도 있습니다. 답변을 제대로 읽지 못했습니다.) – tripleee

+0

핑을하기위한 일부 파이썬 라이브러리가 존재합니다. 비록 당신이 그들을 사용하고 싶지 않더라도, 그들은 Git repos에 있습니다. 그들의 소스 코드를 보셨습니까? –

답변

2

핑은 이 아닙니다. HTTP 연결과 동일한 것입니다! 첫 번째는 연결 테스트 및 로컬 네트워크에서 주로 왕복 시간을 찾는 데 사용되는 저수준 ICMP 패킷입니다. 방화벽과 외부 라우터에 의해 보안상의 이유로 종종 차단되기 때문에 일반적으로 광범위한 인터넷에서 사용되지 않습니다.

서버와의 연결을 설정하는 데 필요한 시간을 알고 싶다면 시계를보고 작업을하고 시계를 다시보고 경과 시간을 확인하십시오. 파이썬에서 제공합니다

#import time 
... 
def connect_time(): 
    try: 
    # see if we can resolve the host name -- tells us if there is 
    # a DNS listening 
    host = socket.gethostbyname(REMOTE_SERVER) 
    # connect to the host -- tells us if the host is actually 
    # reachable 
    before = time.clock()  # from Python 3.3 and above use before = time.perf_counter() 
    s = socket.create_connection((host, 80), 2) 
    after = time.clock()  # from Python 3.3 and above use after = time.perf_counter() 
    return after - before 
    except: 
    return -1 
+0

실행할 때 또한 정확한 실행이 아니기 때문에 명령을 실행하는 데 걸리는 시간이 줄어 듭니다. –

+0

@IanStegner : 함수 호출에서 괄호를 잊어 버렸습니까? 몇시에 정확히 원하는 걸까요? –

+0

그래, 나는 괄호를 잊어 버렸지 만 지금은 -1 만 얻는다. 내가 원하는 시간은 밀리 세컨드입니다. –

관련 문제