login  Naam:   Wachtwoord: 
Registreer je!
 Forum

C/C++ pagina's scannen

Offline stenno - 13/02/2006 17:10
Avatar van stennoPHP interesse
Beste sima's

Is het mogelijk om in C/C++ een webpagina te openen (moet zichtbaar zijn) en te scannen wat erop staat. Zoja weet je een site waar ik daar meer over kan vinden of kan je me er misschien wat meer over vertellen.

Alvast bedankt^^

22 antwoorden

Gesponsorde links
Offline nemesiskoen - 13/02/2006 17:19 (laatste wijziging 13/02/2006 17:19)
Avatar van nemesiskoen Gouden medaille

PHP expert
Je zou misschien de html kunnen aanroepen maar dan moet je een html parser schrijven. Je kan geen geparste website aanroepen zonder tussenkomst van een derde programma (IE, Firefox, ...) en ik weet niet of er die zo'n plug-ins hebben...
Offline Dennis - 13/02/2006 17:31
Avatar van Dennis Gouden medaille

Grafische expert
Ik kan wel in AutoITscript dit schrijven.
(Is ook ontwikkeld in C++)
Offline stenno - 13/02/2006 17:46
Avatar van stenno PHP interesse Neej in samenwerking met IE is geen probleem.
Offline Ontani - 13/02/2006 18:18
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
je kan een post sturen naar een website die daarna de volledige html van de site terug geeft:

  1. #define WIN_OS
  2. #define _DEBUG_PRINT(X) /* X */
  3. #pragma comment(lib, "wsock32.lib")
  4.  
  5. //For commn
  6. #include <iostream>
  7. #include <string>
  8. #include <stdlib.h>
  9. #include <assert.h>
  10. #include <time.h>
  11.  
  12. #ifdef WIN_OS
  13. #include <Winsock2.h>
  14. #endif
  15.  
  16.  
  17. #define SEND_RQ(MSG) \
  18. /*cout<<send_str;*/ \
  19. send(sock,MSG,strlen(MSG),0);
  20.  
  21.  
  22. using namespace std;
  23. //<exe> hostname api parameters
  24. int line_length;
  25. int request (char* hostname, char* api, char* parameters, string& message)
  26. {
  27.  
  28. #ifdef WIN_OS
  29. {
  30. WSADATA WsaData;
  31. WSAStartup (0x0101, &WsaData);
  32. }
  33. #endif
  34.  
  35. sockaddr_in sin;
  36. int sock = socket (AF_INET, SOCK_STREAM, 0);
  37. if (sock == -1) {
  38. return -100;
  39. }
  40. sin.sin_family = AF_INET;
  41. sin.sin_port = htons( (unsigned short)80);
  42.  
  43. struct hostent * host_addr = gethostbyname(hostname);
  44. if(host_addr==NULL) {
  45. _DEBUG_PRINT( cout<<"Unable to locate host"<<endl );
  46. return -103;
  47. }
  48. sin.sin_addr.s_addr = *((int*)*host_addr->h_addr_list) ;
  49. _DEBUG_PRINT( cout<<"Port :"<<sin.sin_port<<", Address : "<< sin.sin_addr.s_addr<<endl);
  50.  
  51. if( connect (sock,(const struct sockaddr *)&sin, sizeof(sockaddr_in) ) == -1 ) {
  52. _DEBUG_PRINT( cout<<"connect failed"<<endl ) ;
  53. return -101;
  54. }
  55.  
  56. string send_str;
  57. SEND_RQ("POST ");
  58. SEND_RQ(api);
  59. SEND_RQ(" HTTP/1.0\r\n");
  60. char content_header[100];
  61. sprintf(content_header,"Content-Length: %d\r\n",strlen(parameters));
  62. SEND_RQ(content_header);
  63. SEND_RQ("Host: ");
  64. SEND_RQ(hostname);
  65. SEND_RQ("\r\n");
  66. SEND_RQ("Content-Type: application/x-www-form-urlencoded\r\n");
  67. SEND_RQ("\r\n");
  68. SEND_RQ("\r\n");
  69. SEND_RQ(parameters);
  70. SEND_RQ("\r\n");
  71.  
  72. char c1[1];
  73. int l;
  74. bool loop = true;
  75. bool bHeader = false;
  76.  
  77. while(loop) {
  78. l = recv(sock, c1, 1, 0);
  79. if(l<0) loop = false;
  80. if(c1[0]=='\n') {
  81. if(line_length == 0) loop = false;
  82.  
  83. line_length = 0;
  84. if(message.find("200") != string::npos)
  85. bHeader = true;
  86.  
  87. }
  88. else if(c1[0]!='\r') line_length++;
  89. _DEBUG_PRINT( cout<<c1[0]);
  90. message += c1[0];
  91. }
  92.  
  93. message="";
  94. if(bHeader) {
  95.  
  96. _DEBUG_PRINT( cout<<"####BODY####"<<endl) ;
  97. char p[1024];
  98. while((l = recv(sock,p,1023,0)) > 0) {
  99. _DEBUG_PRINT( cout.write(p,l)) ;
  100. p[l] = '\0';
  101. message += p;
  102. }
  103.  
  104. _DEBUG_PRINT( cout << message.c_str());
  105. } else {
  106. return -102;
  107. }
  108.  
  109.  
  110. #ifdef WIN_OS
  111. WSACleanup( );
  112. #endif
  113.  
  114. return 0;
  115. }
  116.  
  117.  
  118. int main(){
  119. string message;
  120. int result = request ("google.be", "/webhp", "", message);
  121. cout << message << endl;
  122. return 0;
  123. }
Offline stenno - 13/02/2006 19:26
Avatar van stenno PHP interesse Compiler: Default compiler
Building Makefile: "C:\Dev-Cpp\Makefile.win"
Bezig met uitvoeren van make...
make.exe -f "C:\Dev-Cpp\Makefile.win" all
gcc.exe -c webpagina.c -o webpagina.o -I"C:/Dev-Cpp/include"

webpagina.c:6:20: iostream: No such file or directory
webpagina.c:7:18: string: No such file or directory
webpagina.c:22: error: syntax error before "namespace"
webpagina.c:22: warning: data definition has no type or storage class
webpagina.c:25: error: syntax error before "string"

webpagina.c: In function `request':
webpagina.c:35: error: `sockaddr_in' undeclared (first use in this function)
webpagina.c:35: error: (Each undeclared identifier is reported only once
webpagina.c:35: error: for each function it appears in.)
webpagina.c:35: error: syntax error before "sin"
webpagina.c:40: error: `sin' undeclared (first use in this function)
webpagina.c:43: error: `hostname' undeclared (first use in this function)
webpagina.c:56: error: `string' undeclared (first use in this function)
webpagina.c:56: error: syntax error before "send_str"
webpagina.c:58: error: `api' undeclared (first use in this function)

webpagina.c:61: error: `parameters' undeclared (first use in this function)
webpagina.c:74: error: `bool' undeclared (first use in this function)
webpagina.c:74: error: syntax error before "loop"
webpagina.c:77: error: `loop' undeclared (first use in this function)
webpagina.c:79: error: `false' undeclared (first use in this function)
webpagina.c:84: error: `message' undeclared (first use in this function)

webpagina.c:84: error: syntax error before ':' token
webpagina.c:94: error: `bHeader' undeclared (first use in this function)

webpagina.c: In function `main':
webpagina.c:119: error: `string' undeclared (first use in this function)
webpagina.c:119: error: syntax error before "message"
webpagina.c:120: error: `message' undeclared (first use in this function)

webpagina.c:121: error: `cout' undeclared (first use in this function)
webpagina.c:121: error: `endl' undeclared (first use in this function)

make.exe: *** [webpagina.o] Error 1

Uitvoering voltooid

Ik krijg aardig wat errors bij het compileren, nou ben ik nogal een beginneling dus weet ik er niet zo veel van , Kan iemand me misschien een beetje helpen want ik krijg ze niet allemaal alleen weg met mijn beperkte kennis:p
Offline Ontani - 13/02/2006 22:28
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
als em iostream en string al niet kan vinden dan moet je eens in je folder kijken van je compiler of er niets is in de include map dat daar op lijkt. misschien moet het in jou geval iostream.h en string.h zijn.
Offline Richard - 14/02/2006 08:28
Avatar van Richard Crew algemeen duh.. dat zijn ook de echte namen, die je aan zou moeten houden.
Offline stenno - 14/02/2006 09:09 (laatste wijziging 14/02/2006 09:09)
Avatar van stenno PHP interesse Ja de file string heb ik al veranderd in string.h maar iostream kan ik niet vinden in mijn map includes
Offline Ontani - 14/02/2006 14:36
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
ach JeXuS, toch toevallig dat het zonder "de echte namen" werkt bij mij é
Offline stenno - 14/02/2006 21:23
Avatar van stenno PHP interesse Back on topic graag:p

Kunnen jullie me helpen die errors eruit te krijgen 

@ ontani Hoe komt het dat hij het bij jou wel doet zonder errrors en bij gewoon 30 errors geeft ??  Omdat ik die Iostream niet kan includen ??

Alvast bedankt
Offline Ontani - 15/02/2006 00:36
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
ja hoogst waarschijnlijk, ik maak wel gebruik van een andere compiler als jou, dus daar zou het wel aan kunnen liggen.

zorg dat je includes folder up to date is.

ik gebruik Visual Studio .NET 2003 om te compilen
Offline stenno - 15/02/2006 14:30
Avatar van stenno PHP interesse
Raar, want ik heb iostream.h bestand in mijn includes map gezet en in de broncode heb ik iostream verandert in iostream.h en geeft nog steeds aan: "NO such file in directory"

Het iostream.h bestand stond ergens in een sub sub map van mijn include map.

Is het trouwens een C of een C++ bestand ?? Want ik heb het opgeslagen als C, dus kan het misschien daar aan liggen ??
Offline Richard - 15/02/2006 14:36 (laatste wijziging 15/02/2006 14:36)
Avatar van Richard Crew algemeen moet het dan misschien niet stdio.h zijn?

@Ontani: ik gebruik Microsoft Visual C++...
Offline Ontani - 15/02/2006 15:11
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
het is een cpp file
Offline stenno - 15/02/2006 15:56
Avatar van stenno PHP interesse Okeej geen errors meer, maar nu wil hij niet compileren door warnings :(

undefined reference to `WSAStartup@8'
undefined reference to `socket@12'
undefined reference to `htons@4'
undefined reference to `gethostbyname@4'
undefined reference to `connect@12'
undefined reference to `send@16'
undefined reference to `WSACleanup@0'

Kunnen jullie me nog een keer helpen deze warnings weg te krijgen

:'(
Offline Ontani - 15/02/2006 16:20
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
warnings krijg ik ook nog met visual studio .net, het verschil is dat ie daardoor niet stopt met compileren.
Offline stenno - 15/02/2006 16:50
Avatar van stenno PHP interesse
Het domme vragen uurtje 
Ok hoe kan ik het programma dan uitvoeren ??:'(
Offline Ontani - 15/02/2006 16:51
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
ne andere compiler zoeken zou k zeggen 
Offline Stijn - 15/02/2006 20:29 (laatste wijziging 15/02/2006 20:29)
Avatar van Stijn PHP expert Gebruik dev-cpp, die heeft een goeie compiler (+editor) Hij vind gewoon de functies niet terug, misschien is het toch gecompiled, al eens in je map gekeken?
Offline stenno - 15/02/2006 20:47
Avatar van stenno PHP interesse Ja staat mijn bestand.o

Hoe open ik dat ?? Want ik neem aan dat dat mijn gecompileerde bestand is.

ps ik gebruik dev-cpp 
Offline Ontani - 15/02/2006 20:58
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
uw gecompileerd bestand zou een exe moeten zijn
Offline stenno - 15/02/2006 21:03
Avatar van stenno PHP interesse Dan is het niet gecompileerd  Want als ik helloworld compileer krijg ik wel een bestand.exe  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.198s