PHP Проверьте IP-адрес для камеры видеонаблюдения (DVR) - PullRequest
0 голосов
/ 30 марта 2020

Поскольку мы все заблокированы в работе, я решил попробовать что-нибудь новое. Я решил, что хочу поиграть с потоками CCTV. Поэтому я решил начать с простого поиска правильного URL-адреса для доступа к своему потоку.

Я знаю следующее: - IP-адрес (ip-addr) - Порт - Имя пользователя - Пароль

Итак, я хотел написать сценарий для сканирования моих камер видеонаблюдения и сказать мне, какой правильный URL для потоковой передачи используется для этого (я знаю, что правильный формат для моей камеры: rtsp://ip-addr/user=admin&password=&channel=1&stream=0.sdp?), но я хочу быть смог найти это автоматически для будущего проекта.

Я думал, что это было бы довольно просто, я собрал бы все возможные URL-адреса, которые я знаю для систем видеонаблюдения, и l oop через них.

Я сделал это после нахождения кода других людей, но я просто не могу заставить его работать быстро:

<?php
function is_working($url){
    $urlparsed = parse_url($url);
    $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    if($socket == FALSE) return false;
    if(@socket_connect($socket, $urlparsed['host'], $urlparsed['port'])){
        $headers = array();
        $headers[] = "DESCRIBE {$url} RTSP/1.0";
        $headers[] = "User-Agent: WMPlayer/12.00.7600.16385 guid/3300AD50-2C39-46C0-AE0A-39E48EB3C868";
        $headers[] = "Accept: application/sdp";
        $headers[] = "Accept-Charset: UTF-8, *;q=0.1";
        $headers[] = "X-Accept-Authentication: Negotiate, NTLM, Digest";
        $headers[] = "Accept-Language: en-US, *;q=0.1";
        $headers[] = "CSeq: 1";
        $headerString = implode("\r\n", $headers) . "\r\n\r\n";
        if(false === socket_write($socket, $headerString, strlen($headerString))){
            socket_close($socket);
            return false;
        }else{
            $response = '';
            if(false === socket_recv($socket, $response, 2048,MSG_PEEK)){
                socket_close($socket);
                return false;
            }else{
                //var_dump($response);
                if(strpos($response,"RTSP/1.0 200 OK") !== FALSE){
                    return true;
                }else{
                    return false;
                }
                socket_close($socket);
            }
        }

    }else{
        return "Not Found";
    }
}

$uname = "admin";
$pword = "myPassword";
$ipaddress ="99.99.99.99";

$feedlist = array("rtsp://ip-addr/cam1/h264","rtsp://ip-addr/mpeg4/1/media.amp","rtsp://ip-addr/image.mpg","rtsp://ip-addr/mpg4/rtsp.amp","rtsp://ip-addr/img/media.sav","rtsp://ip-addr/","rtsp://ip-addr/live","rtsp://ip-addr:554/onvif1","rtsp://ip-addr/cam/realmonitor?channel=1&subtype=0","rtsp://ip-addr:1025/","rtsp://ip-addr/ch0_0.h264","rtsp://ip-addr/media.amp?streamprofile=Profile1","rtsp://ip-addr/h264.sdp","rtsp://ip-addr/cam1/mpeg4","rtsp://ip-addr/user=admin_password=R5XFY888_channel=1_stream=0.sdp?real_stream","rtsp://ip-addr/live_st1","rtsp://ip-addr/mpeg4","rtsp://ip-addr","rtsp://ip-addr/live1.sdp","rtsp://ip-addr/axis-media/media.amp","rtsp://ip-addr:554/mpeg/media.amp","rtsp://ip-addr/user=admin&password=&channel=1&stream=0.sdp?","rtsp://ip-addr/channel1","rtsp://ip-addr/video1","rtsp://ip-addr/AVStream1_1","rtsp://ip-addr/StreamingSetting?version=1.0&action=getRTSPStream&ChannelID=1&ChannelName=Channel1","rtsp://ip-addr/v1","rtsp://ip-addr/stream1","http://ip-addr:81/images/webcam.jpg?motion","rtsp://ip-addr:554/ch01.264?ptype=tcp","rtsp://ip-addr:554","rtsp://ip-addr/cam/realmonitor?channel=1&subtype=0","rtsp://ip-addr/cam/realmonitor?channel=0&subtype=0","rtsp://ip-addr:554/live","rtsp://ip-addr//cam/realmonitor?channel=1&subtype=0","rtsp://ip-addr:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif","rtsp://ip-addr/live1.sdp","rtsp://ip-addr:6000/","rtsp://ip-addr/live.sdp","rtsp://ip-addr/play1.sdp","rtsp://ip-addr/live3.sdp","rtsp://ip-addr/live3.sdp","rtsp://ip-addr:554","rtsp://ip-addr/HighResolutionvideo","rtsp://ip-addr:554/play1.sdp","rtsp://ip-addr:554/live/main","rtsp://ip-addr/ioImage/1","rtsp://ip-addr/11","rtsp://ip-addr/ipcam_mjpeg.sdp","rtsp://ip-addr/cam1_1","rtsp://ip-addr//live/ch01_0","rtsp://ip-addr:554/stream.sdp","rtsp://ip-addr/streaming/channels/1","rtsp://ip-addr/streaming/channels/0","rtsp://ip-addr/avc","rtsp://ip-addr/videoMain","rtsp://ip-addr:88/video","rtsp://ip-addr:554/user=admin_password=?????_channel=1_stream=0.sdp?real_stream","http://ip-addr/9000","rtsp://ip-addr/gnz_media/main","rtsp://ip-addr/live.sdp","rtsp://username:pass@ip-addr","rtsp://ip-addr/avn=2","rtsp://ip-addr:8554/","rtsp://ip-addr:8554/CH001.sdp","rtsp://ip-addr/CH001.sdp","rtsp://ip-addr:8554/","rtsp://ip-addr/user=admin&password=&channel=1&stream=0.sdp?real_stream","rtsp://ip-addr/trackID=1","rtsp://ip-addr:554/h264/ch1/sub/av_stream","rtsp://ip-addr:5541/","rtsp://ip-addr/rtsp","rtsp://ip-addr:555","rtsp://ip-addr/rtsph2641080p","rtsp://ip-addr/Streaming/Channel/1","rtsp://ip-addr/h.264/ch1/main/av_stream","rtsp://ip-addr/Streaming/Unicast/channels/10","rtsp://ip-addr/h264","rtsp://ip-addr/h264","rtsp://ip-addr/StdCh1","rtsp://ip-addr:554/live/ch0","rtsp://ip-addr/video0.sdp","rtsp://ip-addr:7070","rtsp://ip-addr/stream1","rtsp://ip-addr/videoMain","rtsp://ip-addr/user=admin_password=admin_channel=1_stream=0.sdp?real_stream","rtsp://ip-addr/videoinput_1/h264_1/media.stm","rtsp://ip-addr:554/11","rtsp://ip-addr:554/11","rtsp://ip-addr/now.mp4","rtsp://ip-addr/live/main","rtsp://ip-addr:554/1","rtsp://ip-addr/h264/","rtsp://ip-addr/rtsph2641080p","rtsp://ip-addr/img/video.sav","rtsp://ip-addr/HighResolutionVideo","rtsp://ip-addr/video.mp4","rtsp://ip-addr/0/usrnm:pwd/main","rtsp://ip-addr/cam0_0","rtsp://ip-addr:554/h264","rtsp://ip-addr:pass@10.0.0.5:6667/blinkhd","rtsp://ip-addr/udpstream","rtsp://ip-addr/av0_0","rtsp://ip-addr:500/","rtsp://ip-addr/125","rtsp://ip-addr:port/Streaming/Channels/101","rtsp://ip-addr/MediaInput/h264/stream_1","rtsp://ip-addr/MediaInput/h264","rtsp://ip-addr/ONVIF/MediaInput?profile=4_def_profile6","rtsp://ip-addr/ipcam.sdp","rtsp://ip-addr/cam1/h264/multicast","rtsp://ip-addr/api/mjpegvideo.cgi","rtsp://ip-addr/ch0_unicast_firststream","rtsp://ip-addr/tcp_live/ch0_0","rtsp://ip-addr/live/ch0_0","rtsp://ip-addr/cam1/mpeg4?user=’username’&pwd=’password","rtsp://ip-addr/ch0_unicast_firststream","rtsp://ip-addr/profile2/media.smp","rtsp://admin:pass@ip-addr:554/profile5/media.smp","rtsp://ip-addr/profile5/media.smp","rtsp://ip-addr:10544/tcp/av0_0","rtsp://ip-addr:8554/main","rtsp://ip-addr:8554/main","rtsp://ip-addr/0/1:1/main","rtsp://ip-addr/image.mpg","rtsp://ip-addr/img/media.sav?channel=1","rtsp://ip-addr/cam0_1","rtsp://ip-addr/cam0_1","rtsp://ip-addr:7554/","rtsp://ip-addr:1554/","rtsp://ip-addr/live_mpeg4.sdp","rtsp://ip-addr/img/video.asf","rtsp://ip-addr/mpeg4","rtsp://ip-addr/img/video.sav","rtsp://ip-addr/media/video1","rtsp://ip-addr/video1","rtsp://ip-addr:554/h264/ch1/sub/av_stream","rtsp://ip-addr:554/mpeg4/ch1/main/av_stream","rtsp://ip-addr/onvif1","rtsp://ip-addr/http://ip-addr:554/onvif1","rtsp://ip-addr:554/onvif1","rtsp://ip-addr/onvif1","rtsp://ip-addr/nph-h264.cgi","rtsp://ip-addr/CAM_ID.password.mp2","rtsp://ip-addr/11","rtsp://ip-addr/user=admin&password=&channel=1&stream=0.sdp?","rtsp://ip-addr:Port/mode=real&idc=[1]&ids=[1]","rtsp://ip-addr/0/video1","rtsp://ip-addr/h264/media.amp","rtsp://ip-addr/video.mp4","rtsp://ip-addr/streaming/channels/101","rtsp://ip-addr/live/ch00_0","rtsp://ip-addr/access_name_for_stream_1_to_5","rtsp://ip-addr:10554/udp/av0_0","rtsp://ip-addr:10554//tcp/av0_0","rtsp://ip-addr/11","rtsp://ip-addr:10554/","rtsp://ip-addr:7070/h264","http://ip-addr:85/wps-cgi/mjpg/video.cgi?camera=2&resolution=640×480","rtsp://ip-addr:8088","rtsp://ip-addr:554/ch00/0","rtsp://ip-addr:554/ch01.264?","rtsp://ip-addr/v2","rtsp://ip-addr/v3","rtsp://ip-addr/video.pro1","rtsp://ip-addr:554/video.mjpg","rtsp://ip-addr:10554/tcp/av0_0","rtsp://ip-addr:10544/tcp/av0_0","rtsp://ip-addr:10554/","rtsp://ip-addr:10544/tcp/av0_");



foreach ($feedlist as $vfeed) {

    $newfeed = str_replace("user=admin","user=".$uname,$vfeed);
    $newfeed = str_replace("password=","password=".$pword,$newfeed);
    $newfeed = str_replace("?????","",$newfeed);
    $newfeed = str_replace("ip-addr",$ipaddress,$newfeed);


    $check=is_working($newfeed);


    if ($check == true) {
        echo "It's working! Your feed is: ".$vfeed;
        break;
    } else {
        echo "Not working: " .$vfeed;

    }


    }


?>

Я также читал об iSpy, который является открытым исходным кодом, и обнаружение камеры можно найти здесь : https://github.com/ispysoftware/iSpy/blob/master/CameraDiscovery/URLDiscovery.cs но я не знаком с c# в любом случае.

Может кто-нибудь направить меня в правильном направлении или дать мне знать, где я иду не так?

Спасибо, Крис

...