import socket
import time


def rtsp_ping(ip_addr):
    __request = '''
        OPTIONS rtsp://''' + ip_addr + ''':554/ RTSP/1.0
        CSeq: 1
        User-Agent: Python

    '''
    __ping_result = False
    try:
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.settimeout(1)
        sock.connect((ip_addr, 554))
        sock.sendall(__request.encode())
        data = sock.recv(4096).decode()
        lines = data.split('\r\n')
        status_line = lines[0]
        status_code = status_line.split(' ')[1]
        print(ip_addr, 'RTSP Response Status Code:', status_code)
        sock.close()
        if status_code == "200":
            __ping_result = True
        else:
            __ping_result = False
    except Exception:
        __ping_result = False
    return __ping_result


if __name__ == '__main__':


    # ipaddr = ['127.0.0.1','127.0.0.1','127.0.0.1']
    while True:
        time.sleep(5)
        up_info_status = rtsp_ping('10.85')
        down_info_status = rtsp_ping('10.85')
        sta_info_status = rtsp_ping('10.85')
        ceshi1 = rtsp_ping('127.0.0.1')

        print(up_info_status, down_info_status, sta_info_status)
        input("测试完毕!!!")