Hacka en $30 WiFi Pan-Tilt kamera - Video, ljud och Motor control med Python (3 / 6 steg)
Steg 3: Hur vi gjorde det: Hacking Motion
Vi började med en kamera med en webbsida gränssnitt och ville kontrollera det programmatiskt, så vad bättre sätt för att räkna ut hur det fungerar än inspektera koden?
Vi sparade webbsidan till disken och tittade på monitor.htm. Det var det som vi hittat några intressanta letar variabler, till exempel PTZ_UP och PTZ_STOP, som verkade vara motion control konstanter. Att hålla det i åtanke, vi öppnade upp web inspektion konsolen (Ctrl + Skift + C i Chrome) och inspekterade nätverkstrafiken medan du klickar på knapparna kamera rörelse. Vi hittade flera samtal till en decoder_control.cgi
sida med en "kommando =" argumentet matchande konstanterna Vi hittade tidigare i HTML - en närhelst ett klick börjar, och en annan när en klick slutar. Så kontrollerna är ON/OFF och via HTTP GET-begäran? Låt oss ta reda på!
Vi kopierade URL: vi såg:
http://192.168.1.19:81/decoder_control.cgi?loginus...:81/snapshot.cgi?loginuse=admin&loginpas=123456&command=6&onestep=0&14015618208430.2931671005208045&_=1401561820844">http://audiostream.cgi:81/livestream.cgi?loginus...
i webbläsaren och laddad började sidan, och säker nog kameran röra sig! Från då var det en fråga om kasta konstanterna och en formattable URL-sträng i Python att slutföra registeransvarige. Gjort.
Men vad om video? En kamera är inte en kamera utan det, trots allt...