Advertisement
Guest User

Oleg Orlov

a guest
Jan 19th, 2012
440
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.27 KB | None | 0 0
  1. #include <iostream>
  2. #include <WinSock2.h>
  3.  
  4. #pragma comment(lib, "Ws2_32.lib")
  5.  
  6. using namespace std;
  7.  
  8. #ifdef hint
  9.     //0x57.0xfa.0xfa.0x7c - 87.250.250.124 - imap.yandex.ru
  10.     //0xd9.0x45.0x8a.0x48 - 217.69.138.72 - imap.mail.ru
  11.     //0x5e.0x64.0xb8.0x4b - 94.100.184.75 - pop.mail.ru
  12.     //0x6e - 110; 0x8f - 143
  13. #endif
  14.  
  15. struct Header
  16. {
  17.  
  18. public:
  19.  
  20.     SOCKET sock;
  21.     WSAData data;
  22.     SOCKADDR_IN client, service;
  23.  
  24.     int result, tmp;
  25.     char buffer[0x1000];
  26.  
  27.     char *ip;
  28.     unsigned int port;
  29.  
  30.     Header(void)
  31.     {
  32.         ip = "0x5e.0x64.0xb8.0x4b";
  33.         port = 0x6e;
  34.     };
  35. };
  36.  
  37. struct Inet
  38. {
  39.  
  40. public:
  41.  
  42.     int InitWSA(WSAData *data, int *result)
  43.     {
  44.         *result = WSAStartup(0x202, data);
  45.         cout << (*data).szDescription << " " << (*data).szSystemStatus << endl;
  46.         return (*result);
  47.     };
  48.  
  49.     void InitSockaddr_in(SOCKADDR_IN *addr, char *ip, unsigned int *port)
  50.     {
  51.         (*addr).sin_addr.s_addr = inet_addr(ip);
  52.         (*addr).sin_family = AF_INET;
  53.         (*addr).sin_port = htons((*port));
  54.     };
  55.  
  56.     void HandleResponse(char *response)
  57.     {
  58.         int i = 0;
  59.  
  60.         do
  61.         {
  62.             cout << response[i];
  63.             i++;
  64.         } while((int)response[i] != -52);
  65.  
  66.         for(i = 0; i < strlen(response); i++) response[i] = (char)-52;
  67.     };
  68.  
  69.     int SendData(SOCKET *sock, char *cmd)
  70.     {
  71.         return send((*sock), cmd, strlen(cmd), 0);
  72.     };
  73.  
  74.     void GetResponse(SOCKET *sock, char *buffer)
  75.     {
  76.         Sleep(500);
  77.         int result = recv((*sock), buffer, strlen(buffer), 0);
  78.         HandleResponse(buffer);
  79.     };
  80.  
  81. };
  82.  
  83. void main(void)
  84. {
  85.     Header *head = new Header();
  86.     Inet *object = new Inet();
  87.    
  88.     object->InitWSA(&head->data, &head->result);
  89.     object->InitSockaddr_in(&head->service, head->ip, &head->port);
  90.  
  91.     head->sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  92.     head->result = connect(head->sock, (sockaddr*)&head->service, sizeof(head->service));
  93.  
  94.     object->GetResponse(&head->sock, head->buffer);
  95.  
  96.     object->SendData(&head->sock, "user mylogin\r\n");
  97.     object->GetResponse(&head->sock, head->buffer);
  98.  
  99.     object->SendData(&head->sock, "pass mypass\r\n");
  100.     object->GetResponse(&head->sock, head->buffer);
  101.  
  102.     object->SendData(&head->sock, "stat\r\n");
  103.     object->GetResponse(&head->sock, head->buffer);
  104.  
  105.     object->SendData(&head->sock, "retr 110\r\n");
  106.     object->GetResponse(&head->sock, head->buffer);
  107.  
  108.     delete object;
  109.     delete head;
  110.     system("pause");
  111. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement