Skocz do zawartości

mes mariusz

Użytkownicy
  • Zawartość

    4
  • Rejestracja

  • Ostatnio

Reputacja

0 Neutralny

O mes mariusz

  • Ranga
    Nowy na forum
  1. Cześć Potrzebowałbym jakieś narzędzie (wypasione, edukacyjne), to którego załaduję plik hex (jakiś skompilowany wsad do procka) a następnie zadeklaruję długość słowa i wielkość strony, po czym taki viewer wygeneruje mi adresy kolejnych stron pamięci, pokoloruje je, pozwoli "skakać" po nich. Spotkaliście się może z takim narzędziem?
  2. Prośba o wsparcie dla początkującego... Załączam kod i log kompilatora. Prośba o komentarz do log-a i wskazanie jak to poprawić. Kod: <code=cpp> #include <windows.h> #include <winsock2.h> #pragma comment(lib, "ws2_32.lib") // Insist on at least Winsock v1.1 const VERSION_MAJOR = 1; const VERSION_MINOR = 1; #define CRLF "\r\n" // carriage-return/line feed pair void ShowUsage(void) { cout << "Usage: SENDMAIL mailserv to_addr from_addr messagefile" << endl << "Example: SENDMAIL smtp.myisp.com rcvr@elsewhere.com my_id@mydomain.com message.txt" << endl; exit(1); } // Basic error checking for send() and recv() functions void Check(int iStatus, char *szFunction) { if((iStatus != SOCKET_ERROR) && (iStatus)) return; cerr << "Error during call to " << szFunction << ": " << iStatus << " - " << GetLastError() << endl; } int main(int argc, char *argv[]) { int iProtocolPort = 0; char szSmtpServerName[64] = ""; char szToAddr[64] = ""; char szFromAddr[64] = ""; char szBuffer[4096] = ""; char szLine[255] = ""; char szMsgLine[255] = ""; SOCKET hServer; WSADATA WSData; LPHOSTENT lpHostEntry; LPSERVENT lpServEntry; SOCKADDR_IN SockAddr; // Check for four command-line args if(argc != 5) ShowUsage(); // Load command-line args lstrcpy(szSmtpServerName, argv[1]); lstrcpy(szToAddr, argv[2]); lstrcpy(szFromAddr, argv[3]); // Create input stream for reading email message file ifstream MsgFile(argv[4]); // Attempt to intialize WinSock (1.1 or later) if(WSAStartup(MAKEWORD(VERSION_MAJOR, VERSION_MINOR), &WSData)) { cout << "Cannot find Winsock v" << VERSION_MAJOR << "." << VERSION_MINOR << " or later!" << endl; return 1; } // Lookup email server's IP address. lpHostEntry = gethostbyname(szSmtpServerName); if(!lpHostEntry) { cout << "Cannot find SMTP mail server " << szSmtpServerName << endl; return 1; } // Create a TCP/IP socket, no specific protocol hServer = socket(PF_INET, SOCK_STREAM, 0); if(hServer == INVALID_SOCKET) { cout << "Cannot open mail server socket" << endl; return 1; } // Get the mail service port lpServEntry = getservbyname("mail", 0); // Use the SMTP default port if no other port is specified if(!lpServEntry) iProtocolPort = htons(IPPORT_SMTP); else iProtocolPort = lpServEntry->s_port; // Setup a Socket Address structure SockAddr.sin_family = AF_INET; SockAddr.sin_port = iProtocolPort; SockAddr.sin_addr = *((LPIN_ADDR)*lpHostEntry->h_addr_list); // Connect the Socket if(connect(hServer, (PSOCKADDR) &SockAddr, sizeof(SockAddr))) { cout << "Error connecting to Server socket" << endl; return 1; } // Receive initial response from SMTP server Check(recv(hServer, szBuffer, sizeof(szBuffer), 0), "recv() Reply"); // Send HELO server.com sprintf(szMsgLine, "HELO %s%s", szSmtpServerName, CRLF); Check(send(hServer, szMsgLine, strlen(szMsgLine), 0), "send() HELO"); Check(recv(hServer, szBuffer, sizeof(szBuffer), 0), "recv() HELO"); // Send MAIL FROM: <sender@mydomain.com> sprintf(szMsgLine, "MAIL FROM:<%s>%s", szFromAddr, CRLF); Check(send(hServer, szMsgLine, strlen(szMsgLine), 0), "send() MAIL FROM"); Check(recv(hServer, szBuffer, sizeof(szBuffer), 0), "recv() MAIL FROM"); // Send RCPT TO: <receiver@domain.com> sprintf(szMsgLine, "RCPT TO:<%s>%s", szToAddr, CRLF); Check(send(hServer, szMsgLine, strlen(szMsgLine), 0), "send() RCPT TO"); Check(recv(hServer, szBuffer, sizeof(szBuffer), 0), "recv() RCPT TO"); // Send DATA sprintf(szMsgLine, "DATA%s", CRLF); Check(send(hServer, szMsgLine, strlen(szMsgLine), 0), "send() DATA"); Check(recv(hServer, szBuffer, sizeof(szBuffer), 0), "recv() DATA"); // Send all lines of message body (using supplied text file) MsgFile.getline(szLine, sizeof(szLine)); // Get first line do // for each line of message text... { sprintf(szMsgLine, "%s%s", szLine, CRLF); Check(send(hServer, szMsgLine, strlen(szMsgLine), 0), "send() message-line"); MsgFile.getline(szLine, sizeof(szLine)); // get next line. } while(MsgFile.good()); // Send blank line and a period sprintf(szMsgLine, "%s.%s", CRLF, CRLF); Check(send(hServer, szMsgLine, strlen(szMsgLine), 0), "send() end-message"); Check(recv(hServer, szBuffer, sizeof(szBuffer), 0), "recv() end-message"); // Send QUIT sprintf(szMsgLine, "QUIT%s", CRLF); Check(send(hServer, szMsgLine, strlen(szMsgLine), 0), "send() QUIT"); Check(recv(hServer, szBuffer, sizeof(szBuffer), 0), "recv() QUIT"); // Report message has been sent cout << "Sent " << argv[4] << " as email message to " << szToAddr << endl; // Close server socket and prepare to exit. closesocket(hServer); WSACleanup(); return 0; }</code> Kompilator: Default compiler Building Makefile: "D:\_MC\Prg\cpp\mail\Makefile.win" Wykonywanie make... make.exe -f "D:\_MC\Prg\cpp\mail\Makefile.win" all g++.exe -c main.cpp -o main.o -I"D:/_MC/Prg/cpp/Dev-CppPortable/App/devcpp/lib/gcc/mingw32/3.4.2/include" -I"D:/_MC/Prg/cpp/Dev-CppPortable/App/devcpp/include/c++/3.4.2/backward" -I"D:/_MC/Prg/cpp/Dev-CppPortable/App/devcpp/include/c++/3.4.2/mingw32" -I"D:/_MC/Prg/cpp/Dev-CppPortable/App/devcpp/include/c++/3.4.2" -I"D:/_MC/Prg/cpp/Dev-CppPortable/App/devcpp/include" main.cpp:7: error: ISO C++ forbids declaration of `VERSION_MAJOR' with no type main.cpp:8: error: ISO C++ forbids declaration of `VERSION_MINOR' with no type main.cpp: In function `void ShowUsage()': main.cpp:14: error: `cout' undeclared (first use this function) main.cpp:14: error: (Each undeclared identifier is reported only once for each function it appears in.) main.cpp:15: error: `endl' undeclared (first use this function) main.cpp: In function `void Check(int, char*)': main.cpp:26: error: `cerr' undeclared (first use this function) main.cpp:26: error: `endl' undeclared (first use this function) main.cpp: In function `int main(int, char**)': main.cpp:54: error: `ifstream' undeclared (first use this function) main.cpp:54: error: expected `;' before "MsgFile" main.cpp:59: error: `cout' undeclared (first use this function) main.cpp:59: error: `endl' undeclared (first use this function) main.cpp:108: error: `sprintf' undeclared (first use this function) main.cpp:128: error: `MsgFile' undeclared (first use this function) make.exe: *** [main.o] Error 1 Wykonanie zakończone
  3. Witam. Chcę na moim Raspbery Pi uzyskać funkcjonalność wysłania mailem pliku txt w momencie jak tylko znajdzie się on w folderze i po wysłaniu wykasowanie go. Założenie jest takie. Pewna aplikacja loguje raporty o błędach w postaci pliku tekstowego log.txt folderze /home/messages Chcę, żeby jakaś aplikacja nieustająco nadzorowała folder /home/messages i jak tylko znajdzie się tam plik o wskazanej nazwie wyśle maila o takiej właśnie zawartości (treść pliku log.txt). Czy jest na to jakiś prosty sposób? Skrypt działający w tle uruchomiony jako proces, który csły czas sprawdza, czy folder jest pusty, a jeśli nie to wysyła plik mailem i kasuje ten plik?
  4. Witam. Z programowania maszyn PC jestem ewidentnie newbie (tyle wiem, ile tu napisałem: http://marwroc.wordpress.com/ ;-) Szukam więc raczej gotowego rozwiązania, ale jako, że nie udało mi się takiego znaleźć, pomyślałem, że temat wrzucę tutaj. O ile blokowanie dziecku dostępu do komputera "bo komputer szkodzi" jest (w moim przekonaniu) zapyziałe, naiwne i prymitywne, o tyle blokowanie dostępu do Solid Works-a, Code Blocks, czy choćby Design Sparka, tudzież nutowego edytora lub VirtualDub-a już bez ogródek nazwałbym wprost szczytem głupoty ;-) Poszukuję narzędzia umożliwiającego zdefiniowanie na wybranym użytkowniku Windows 7 białych list aplikacji / oprogramowania z jakich on może korzystać. Gdyby taka aplikacja istniała, pomysł nadawałby się do podsunięcia, rodzicom, starszej, czy młodszej daty, którzy twierdzą, że "nadmiar komputera szkodzi" i wychodząc z pokoju dziecka zabierają mu klawiaturę, tudzież monitor ;-). Mądrzejsze (w moim przekonaniu) byłoby stworzenie w systemie dwóch użytkowników, pierwszego, ograniczonego czasowo (np. za pomocą aplikacji Piranha Time Monitor), na którym można uruchomić wszystko, oraz drugiego, na którego będzie można się zalogować zawsze i bez limitów, ale na którym będzie można uruchomić wyłącznie aplikacje z białej listy. Na takiej liście mogłyby się znaleźć programy do obróbki video, audio, programy typu EDA, CAM, CAD wszelkiej maści pakiety biurowe, edukacyjne, innymi słowy, wszystkie te, których opanowanie przez dziecko będzie dla niego bardzo dobrze rokowało w jego komercyjnej (chcąc nie chcąc) przyszłości (stąd teza o szczycie głupoty odnośnie tezy "komputer szkodzi" ;-) ) Na razie jednak nie znalazłem aplikacji, która obok podsunięcia pomysłu mniej lub bardziej rozgarniętym rodzicom, pozwoliłaby mi zaproponować im kompletne rozwiązanie. Za tekstem z artykułu http://www.networld.pl/artykuly/381818_4/Biale.listy.kontrola.srodowiska.aplikacyjnego.html Białe listy: kontrola środowiska aplikacyjnego, można wywnioskować, że takie rozwiązania istnieją (Bit9 Parity Suite 6.0, IBM Proventia Desktop Endpoint Security 10.1, Kaspersky Endpoint Security 8 for Windows, Kaspersky Security Center, LANDesk Security Suite, Lumension Application Control, McAfee Application Control 6.0, Microsoft AppLocker (mechanizm Windows 7), Sophos Endpoint Security and Data Protection, Symantec Endpoint Protection 12). Niestety, poza wbudowanym w Windows 7 AppLocker (niestety, tylko w wybranych wydaniach) aplikacje te są kobylaste, drogie, a funkcjonalność białych list jest zaledwie dodatkiem. Przeczesałem internet i przyznam, że nie znalazłem niczego szczególnego w temacie. Może ktoś coś podpowie?
×