You last visited: Today at 05:04
Advertisement
Libcurl Schaltflächen
Discussion on Libcurl Schaltflächen within the General Coding forum part of the Coders Den category.
12/06/2009, 23:06
#1
elite*gold: 0
Join Date: Apr 2006
Posts: 6,597
Received Thanks: 1,830
Libcurl Schaltflächen
Hi,
ich habe gerade angefangen mich mit libcurl zu beschäftigen und hab gleich eine grundlegende Frage und zwar wie kann ich mich auf einer Website bewegen?
mit
Code:
int main(void)
{
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.0.1/st_pptp.htm");
curl_easy_setopt(curl, CURLOPT_USERPWD, "routeradmin:routerpw");
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
return 0;
}
kann ich mich wunderbar ins routermenu bzw zum reconnect teil einloggen.
Der komplette html code wird dann ja in der konsole ausgegeben.
Nun die Frage und zwar wie kann ich mit libcurl zb eine Schaltfläche "anklicken" wie zb: disconnect
wenn ich im jetztigen beispiel (das routermenu) auf disconnect klicke werde ich von
Code:
http://192.168.0.1/st_pptp.htm
auf
Code:
http://192.168.0.1/st_pptp.cgi
umgeleitet und eben vom internet getrennt
auf den gleichen link werd ich auch wieder verwiesen wenn ich wieder connecte.
wie kann ich das ganze mit hilfe von libcurl machen? :>
12/07/2009, 00:27
#2
elite*gold: 0
Join Date: Aug 2006
Posts: 505
Received Thanks: 89
Quote:
Originally Posted by
Medix
Hi,
ich habe gerade angefangen mich mit libcurl zu beschäftigen und hab gleich eine grundlegende Frage und zwar wie kann ich mich auf einer Website bewegen?
mit
Code:
int main(void)
{
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.0.1/st_pptp.htm");
curl_easy_setopt(curl, CURLOPT_USERPWD, "routeradmin:routerpw");
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
return 0;
}
kann ich mich wunderbar ins routermenu bzw zum reconnect teil einloggen.
Der komplette html code wird dann ja in der konsole ausgegeben.
Nun die Frage und zwar wie kann ich mit libcurl zb eine Schaltfläche "anklicken" wie zb: disconnect
wenn ich im jetztigen beispiel (das routermenu) auf disconnect klicke werde ich von
Code:
http://192.168.0.1/st_pptp.htm
auf
Code:
http://192.168.0.1/st_pptp.cgi
umgeleitet und eben vom internet getrennt
auf den gleichen link werd ich auch wieder verwiesen wenn ich wieder connecte.
wie kann ich das ganze mit hilfe von libcurl machen? :>
Du findest mit Hilfe von z.B.
(für Firefox) heraus, wie der Request vonstatten geht (POST oder GET) und baust das dann mit den entsprechenden Paramtern nach.
Für GET:
PHP Code:
curl_easy_setopt ( curl , CURLOPT_URL , "http://192.168.0.1/st_pptp.cgi?parameter=befehl&zweiterparameter=befehl2" );
Für POST:
PHP Code:
curl_easy_setopt ( curl , CURLOPT_URL , "http://192.168.0.1/st_pptp.cgi" ); curl_easy_setopt ( curl , CURLOPT_POSTFIELDS , "parameter=befehl&zweiterparameter=befehl2" );
Und verabschiede dich von dem Gedanken irgendetwas "anzuklicken". Du musst einfach nur die Requests nachbauen. LiveHTTPHeaders wird dir dabei sehr behilflich sein.
12/07/2009, 02:15
#3
elite*gold: 0
Join Date: Apr 2006
Posts: 6,597
Received Thanks: 1,830
Danke dir
ja "anklicken" war etwas ungeschickt ausgedrückt^^
12/07/2009, 13:36
#4
elite*gold: 0
Join Date: Apr 2006
Posts: 6,597
Received Thanks: 1,830
Code:
http://192.168.0.1/st_pptp.htm
GET /st_pptp.htm HTTP/1.1
Host: 192.168.0.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.0.15) Gecko/2009101601 Firefox/3.0.15 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://192.168.0.1/st_pptp.htm
Authorization: Basic QWRtaW46U1MyMDAw
HTTP/1.x 200 OK
Server: IP_SHARER WEB 1.0
Content-Type: text/html
&
Code:
http://192.168.0.1/st_pptp.cgi
POST /st_pptp.cgi HTTP/1.1
Host: 192.168.0.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.0.15) Gecko/2009101601 Firefox/3.0.15 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://192.168.0.1/st_pptp.htm
Authorization: Basic QWRtaW46U1MyMDAw
Content-Type: application/x-www-form-urlencoded
Content-Length: 21
disconnect=Disconnect
HTTP/1.x 200 OK
Server: IP_SHARER WEB 1.0
Content-Type: text/html
Das konnte ich mit LiveHTTPHeaders aufnehmen.
Nur leider kann ich hier keine Parameter herauslesen ^^
Oder hast du zufällig gerade einen Link zu einer kleinen Einführung in LiveHTTPHeaders? :>
12/07/2009, 15:13
#5
elite*gold: 0
Join Date: Sep 2009
Posts: 148
Received Thanks: 31
Empfehle das Add-On "Tamper Data", für solche sachen.
12/07/2009, 16:07
#6
elite*gold: 0
Join Date: Apr 2006
Posts: 6,597
Received Thanks: 1,830
Quote:
Originally Posted by
^darkwing
Empfehle das Add-On "Tamper Data", für solche sachen.
Danke hab das Addon auch gleich mal auspobiert.
Ergebnis einer Aufzeichnung von einem "Klick" auf den Disconnect Button im Router Menü
:
Jedoch sehe ich nirgends parameter die ich übergeben könnte mit curl,
Die GET Requests haben auch alle keine Parameter ;/
12/07/2009, 16:34
#7
elite*gold: 0
Join Date: Sep 2009
Posts: 148
Received Thanks: 31
Attached Images
u9gxllrh.jpg
(276.7 KB, 11 views)
12/07/2009, 17:00
#8
elite*gold: 0
Join Date: Apr 2006
Posts: 6,597
Received Thanks: 1,830
Quote:
Originally Posted by
^darkwing
Danke
so hab ichs auch zuerst pobiert war mir nicht sicher ob das die richtigen parameter sind
aber
ging irgendwie nicht
Code:
int main()
{
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.0.1/st_pptp.cgi");
curl_easy_setopt(curl, CURLOPT_USERPWD, "nick:pw");
curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.0.1/st_pptp.cgi");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "disconnect=Disconnect");
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
return 0;
}
nick & pw sind natürlich durch die richtigen login daten ersetzt.
Irgendwas schein ich immernoch falsch zu machen
edit: Ah doch klappt wunderbar
er connected nur automatisch gleich wieder neu
danke vielmals
ps: kann es sein ,dass die parameter nicht case-sentensive sind?
12/07/2009, 18:15
#9
elite*gold: 0
Join Date: Sep 2009
Posts: 148
Received Thanks: 31
Soweit ich weiß, sind die Parameter case-sensitive :>
12/08/2009, 14:02
#10
elite*gold: 0
Join Date: Aug 2006
Posts: 505
Received Thanks: 89
[quote=Medix;3601923]
Quote:
GET /st_pptp.htm HTTP/1.1
Host: 192.168.0.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.0.15) Gecko/2009101601 Firefox/3.0.15 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer:
Authorization: Basic QWRtaW46U1MyMDAw
HTTP/1.x 200 OK
Server: IP_SHARER WEB 1.0
Content-Type: text/html
&
Quote:
POST /st_pptp.cgi HTTP/1.1
Host: 192.168.0.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.0.15) Gecko/2009101601 Firefox/3.0.15 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer:
Authorization: Basic QWRtaW46U1MyMDAw
Content-Type: application/x-www-form-urlencoded
Content-Length: 21
disconnect=Disconnect
HTTP/1.x 200 OK
Server: IP_SHARER WEB 1.0
Content-Type: text/html
[/code]
Das konnte ich mit LiveHTTPHeaders aufnehmen.
Nur leider kann ich hier keine Parameter herauslesen ^^
Oder hast du zufällig gerade einen Link zu einer kleinen Einführung in LiveHTTPHeaders? :>
Ich habs mal markiert. TamperData kenn ich jetzt nicht, aber LiveHTTPHeaders ist eigentlich sehr gut und einfach.
All times are GMT +2. The time now is 05:04 .