URL verzenden naar camera via web pagina

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • habbekrats
  • Registratie: December 2002
  • Laatst online: 19:16
Hallo, allereerst maar even dat ik een (bijna) nul ben maar ben nu al een tijdje aan het rommelen met code

Ik wil graag op een simpele webpagina een camera een foto laten maken
wat gedeeltelijk werkt is dit
code:
1
2
3
4
5
6
<html>
<Title> Test input1 </Title>

<a href="http://000.000.000.000/axis-cgi/io/virtualinput.cgi?action=1:/1000\"> Puls input 1 </a>

</html>


Nu werkt dit op de volgende manier
na klikken link wordt er gevraagd om naam en paswoord
indien deze ingegeven worden dat werk de functie, echter word er ook een nieuwe pagina geopend van de link.


wat is dus graag wilde is, geen naam en paswoord ingeven
en een nieuwe pagina openen ook niet.
Bedoeling is dus klikken = foto.

Op de oude manier http://user:paswoord@000.000.000.000 werkt het niet(meer)

Op de oude manier werkt wel met bv wget voor windows.
Ik wil de security op de camera niet uitzetten.

Ik wil liefst alleen html en wat scripting gebruiken

http://www.pvoutput.org/list.jsp?id=46229&sid=42168


Acties:
  • 0 Henk 'm!

  • habbekrats
  • Registratie: December 2002
  • Laatst online: 19:16
anders opgeschreven, hoe verzend ik dit in een html pagina met bv javascript

GET /axis-cgi/io/virtualinput.cgi?action=1:/1000\ HTTP/1.1
Host: xxx.xxx.xxx.xxx
Authorization: Basic (author code)
Cache-Control: no-cache
Postman-Token: (token caose)


met fiddler krijg ik dit, als ik het in de browser titel tik

GET /axis-cgi/io/virtualinput.cgi?action=1:/1000\ HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, application/vnd.ms-excel, */*
Accept-Language: nl
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Authorization: Basic (code removed)
Host: xxx.xxx.xxx.xxx

the reaction form camera
result 200

http://www.pvoutput.org/list.jsp?id=46229&sid=42168


Acties:
  • 0 Henk 'm!

  • spone
  • Registratie: Mei 2002
  • Niet online
Sinds een tijdje is het in browsers niet meer mogelijk om in een url een username:wachtwoord@host mee te geven, hoofdzakelijk omdat dit voor phising gebruikt werd (hxxp://www.ingbank.nl:blaat@anderehost.nl).

Wat je zou kunnen doen is je pagina een (bijvoorbeeld php-) script aan kunnen laten roepen, die serverside een curl-http-verzoek doet naar de (met daarin de authenticatie).

i5-14600K | 32GB DDR5-6000 | RTX 5070 - MacBook Pro M1 Pro 14" 16/512


Acties:
  • 0 Henk 'm!

  • azerty
  • Registratie: Maart 2009
  • Laatst online: 19:26
Volgens SO is het mogelijk om met JQuery een basic auth request te versturen... Maar dat had je waarschijnlijk zelf ook al gevonden hé? ;)

Acties:
  • 0 Henk 'm!

  • habbekrats
  • Registratie: December 2002
  • Laatst online: 19:16
spone schreef op zondag 03 juli 2016 @ 15:09:
Sinds een tijdje is het in browsers niet meer mogelijk om in een url een username:wachtwoord@host mee te geven, hoofdzakelijk omdat dit voor phising gebruikt werd (hxxp://www.ingbank.nl:blaat@anderehost.nl).

Wat je zou kunnen doen is je pagina een (bijvoorbeeld php-) script aan kunnen laten roepen, die serverside een curl-http-verzoek doet naar de (met daarin de authenticatie).
Dat was bekend dat het niet meer werkt. Maar goed ook natuurlijk.

Ik ben al we iets verder, ik leer opeens heel veel op html enzo

wat wel werkt, als ik ingelogd ben en kies bij ie om de login en password te onthouden is onderstaande.
Is echter nog 1 klein probleem, ik moet steeds de back knop gebruiken om op mijn knop pagina terug te komen.
Eigelijk hoeft de code alleen de urlstring verzenden, en eventueel bij niet 200 result een textboxje met sorry
de aanvraag is mislukt, 401, 400 enz.

code:
1
2
3
4
5
6
7
8
9
10
11
<!DOCTYPE html>
<html>
<title> test</title>

<form action="http://xxx.xxx.xxx.xxx/axis-cgi/io/virtualinput.cgi" method="get">
<input type="hidden"  name="action" value="1:/1000\">
<input type="submit" value="Submit">
</form>


</html>



misschien is een form gebruiken niet handig, maar ik heb iets wat werkt :+

http://www.pvoutput.org/list.jsp?id=46229&sid=42168


Acties:
  • 0 Henk 'm!

  • Fish
  • Registratie: Juli 2002
  • Niet online

Fish

How much is the fish

spone schreef op zondag 03 juli 2016 @ 15:09:
Sinds een tijdje is het in browsers niet meer mogelijk om in een url een username:wachtwoord@host mee te geven, hoofdzakelijk omdat dit voor phising gebruikt werd (hxxp://www.ingbank.nl:blaat@anderehost.nl).

Wat je zou kunnen doen is je pagina een (bijvoorbeeld php-) script aan kunnen laten roepen, die serverside een curl-http-verzoek doet naar de (met daarin de authenticatie).
In het verleden ook vaak weer aangezet via de registry voor explorer en explore

Iperf


Acties:
  • 0 Henk 'm!

  • Ventieldopje
  • Registratie: December 2005
  • Laatst online: 17-09 10:59

Ventieldopje

I'm not your pal, mate!

Om dat te doen kom je er niet onderuit om dit met Javascript of een script taal als PHP te doen.

Als je het met PHP doet kijk dan eens naar Httpful (http://phphttpclient.com/) om je request mee te verzenden :)

[ Voor 39% gewijzigd door Ventieldopje op 03-07-2016 20:48 ]

www.maartendeboer.net
1D X | 5Ds | Zeiss Milvus 25, 50, 85 f/1.4 | Zeiss Otus 55 f/1.4 | Canon 200 f/1.8 | Canon 200 f/2 | Canon 300 f/2.8


Acties:
  • 0 Henk 'm!

  • habbekrats
  • Registratie: December 2002
  • Laatst online: 19:16
Een werkend iets met ajax
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!DOCTYPE html>
<html>
<body>

<h2>AJAX</h2>

<button type="button" onclick="loadDoc()">Request data</button>

<p id="demo"></p>

<script>
function loadDoc() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (xhttp.readyState == 4 && xhttp.status == 200) {
      document.getElementById("demo").innerHTML = xhttp.responseText;
    }
  };
  xhttp.open("GET", "http://xxx.xxx.xxx.xxx/axis-cgi/io/virtualinput.cgi?action=1%3A%2F300%5C", true);
  xhttp.send();
}
</script>
 
</body>
</html>

http://www.pvoutput.org/list.jsp?id=46229&sid=42168


Acties:
  • 0 Henk 'm!

  • Ventieldopje
  • Registratie: December 2005
  • Laatst online: 17-09 10:59

Ventieldopje

I'm not your pal, mate!

é voila :) En nu?

www.maartendeboer.net
1D X | 5Ds | Zeiss Milvus 25, 50, 85 f/1.4 | Zeiss Otus 55 f/1.4 | Canon 200 f/1.8 | Canon 200 f/2 | Canon 300 f/2.8


Acties:
  • 0 Henk 'm!

  • habbekrats
  • Registratie: December 2002
  • Laatst online: 19:16
verder rotzooien met

xhttp.setRequestHeader("Authorization", digest realm

http://www.pvoutput.org/list.jsp?id=46229&sid=42168


Acties:
  • 0 Henk 'm!

  • Ventieldopje
  • Registratie: December 2005
  • Laatst online: 17-09 10:59

Ventieldopje

I'm not your pal, mate!

habbekrats schreef op zondag 03 juli 2016 @ 21:48:
[...]

verder rotzooien met

xhttp.setRequestHeader("Authorization", digest realm
Als je geen bezwaar hebt tegen het gebruik van een javascript library zou je jQuery kunnen gebruiken om een AJAX request te verzenden (zie: http://api.jquery.com/jQuery.ajax/). Met de beforeSend callback kun je dan je Authorization header bijvoegen om Basic Authenticatoin te gebruiken :)

www.maartendeboer.net
1D X | 5Ds | Zeiss Milvus 25, 50, 85 f/1.4 | Zeiss Otus 55 f/1.4 | Canon 200 f/1.8 | Canon 200 f/2 | Canon 300 f/2.8


Acties:
  • 0 Henk 'm!

  • kzin
  • Registratie: Oktober 2003
  • Laatst online: 15:03
Gaat dit nu leiden naar iets waarmee je remote een camera een foto kunt laten maken? Dat begreep ik tenminste uit je startpost. Moet ik dan inderdaad denken aan een digitale fotocamera?

Acties:
  • 0 Henk 'm!

  • habbekrats
  • Registratie: December 2002
  • Laatst online: 19:16
kzin schreef op zondag 03 juli 2016 @ 21:58:
Gaat dit nu leiden naar iets waarmee je remote een camera een foto kunt laten maken? Dat begreep ik tenminste uit je startpost. Moet ik dan inderdaad denken aan een digitale fotocamera?
Nee,is een axis ipcamera welke vroeger met een hard contact getriggerd werd.

Nu zit de boel verder weg, nu kan ik kastjes kopen met een drukknop naar IP commando.
Echter er staat een pc met monitor, dus een drukknopje onder de livefeed geeft dan een commando aan de camera.
De camera ontvangt dit event, zet de camera nog even goed. Neemt een foto en upload dit naar de FTP server

een en ander kan ook op de web pagina zelf van de camera maar daar staat veelte veel overbodige knoppen een andere zooi op.

Bovendien leer ik nog eens html javascript, ajax morgen jQuery uitzoeken.

http://www.pvoutput.org/list.jsp?id=46229&sid=42168


Acties:
  • 0 Henk 'm!

  • habbekrats
  • Registratie: December 2002
  • Laatst online: 19:16
Zo weer wat tijd, boel getest en weer bij geleerd.

werkt niet, code geeft geen fout:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<html>
<script src="jquery-1.9.1.js"></script>
<script>

$.ajax({
    url: 'http://ipnummer/axis-cgi/io/virtualinput.cgi?action=1%3A%2F300%5C',
   type: 'GET',
    beforeSend: function(xhr){
     xhr.withCredentials = true;
      xhr.setRequestHeader('Authorization','Token' + 'Yacacadabra0Iw==');
    
    }});

</script>
</html>


Deze code geeft geen fouten maar doet verder ook niets.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<html>
<script language="javascript" src="jquery-1.9.1.js"></script>
<script>

// define vars
var username = "baas";
var password = "prutser";
var url = "http://ipnummer/axis-cgi/io/virtualinput.cgi?action=1%3A%2F300%5C";

// ajax call
$.ajax({
    url: url,
    dataType : 'get',
    beforeSend : function(xhr) {
      // generate base 64 string from username + password
      var bytes = Crypto.charenc.Binary.stringToBytes(username + ":" + password);
      var base64 = Crypto.util.bytesToBase64(bytes);
      // set header
      xhr.setRequestHeader("Authorization", "Token" + "Ynacacadabraw==");
    },
    error : function() {
        alert("nait ok");
    },
    success: function(data) {
  alert("ok");
    }
});

</html>


Gestuntel met ajax gaat nog minder, blijf zit met object exspected
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<html>
<script type="text/javascript" src="jquery-1.9.1.js"></script>

<script>


// using jQuery & 'beforeSend' callback
$.ajax({
    xhrFields: {
        withCredentials: true
    },
    beforeSend: function (xhr) {
        xhr.setRequestHeader('Authorization', 'Basic ' + btoa('sjef', 'prutser'));
    },
    url:  "http://ipnummer/axis-cgi/io/virtualinput.cgi?action=1%3A%2F300%5C"
});
</script>
</html>



dan nog even een vraag waar ik zo geen antwoord op vind, gebruik van ' en " kan dat door elkaar

http://www.pvoutput.org/list.jsp?id=46229&sid=42168


Acties:
  • 0 Henk 'm!

  • spone
  • Registratie: Mei 2002
  • Niet online
Ja dat kan, zolang je een " maar afsluit met een " en een ' met een '.

Ben trouwens wel benieuwd of het gaat werken. Volgens mij werkt een XHR alleen maar op hetzelfde domein/ip als waar de pagina met het javascript vandaan komt. Dus tenzij je de code op de Axis zelf weet te hosten gaat het denk ik niet werken (wederom security).

i5-14600K | 32GB DDR5-6000 | RTX 5070 - MacBook Pro M1 Pro 14" 16/512


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Bedenk trouwens dat al dit soort javascript oplossingen er voor gaan zorgen dat je de inloggegevens voor iedereen beschikbaar maakt. Iedereen kan inloggen op die camera. De enige manier om dat te voorkomen is om een soort van proxy te gebruiken die in een vertrouwde omgeving draait.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • habbekrats
  • Registratie: December 2002
  • Laatst online: 19:16
De mannen die het gebruiken hebben al een login/pw
Ik wilde het zaakje wat makkelijker maken met een paar grote knoppen in beeld, de webpagina van axis blinkt niet echt uit bedieningsgemak

http://www.pvoutput.org/list.jsp?id=46229&sid=42168

Pagina: 1