Discord Webhooks mit C++
Posted: 23 Jan 2025, 05:04
Also habe ich mich der Herausforderung gestellt, Webhooks in C++ zu erstellen, und wollte einfach etwas Hilfe bei den Post-Anfragen bekommen. Hier ist der Code, den ich im Moment habe. Ich wollte Einbettungen über Post-Anfragen in C++ senden.
Hier ist mein Code zusammen mit Fehlern und allem, der Webhook ist immer noch aktiv, falls Sie es selbst testen möchten. Ich versuche, alles aufrechtzuerhalten, indem ich absichtlich Windows-Bibliotheken verwende.
Wenn ich jedoch die Post-Anfragen stelle, kann mein Inhalt nicht gesendet werden und gibt stattdessen 400 zurück. Ich habe noch ein paar weitere Dinge ausprobiert, frage mich aber, ob es meine Anfrage ist?
Und nehmen wir an, ich verwende die tatsächliche IP von Discords, anstatt sie aufzulösen. Am Ende bekomme ich stattdessen
dies
Wenn Sie irgendwelche Ideen haben, zögern Sie nicht, sie unten zu notieren, ich bin schon lange nicht mehr damit beschäftigt.
Hier ist mein Code zusammen mit Fehlern und allem, der Webhook ist immer noch aktiv, falls Sie es selbst testen möchten. Ich versuche, alles aufrechtzuerhalten, indem ich absichtlich Windows-Bibliotheken verwende.
Code: Select all
#include
#include
#include
#pragma warning(disable:4996)
#pragma comment(lib, "ws2_32.lib")
using namespace std;
int Plug(string address, string port, SOCKET* csock) {
WSADATA WSAData;
WSAStartup(MAKEWORD(2, 0), &WSAData);
PADDRINFOA result;
ADDRINFOA hints;
ZeroMemory(&hints, sizeof(ADDRINFO));
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;
int res = getaddrinfo(address.c_str(), port.c_str(), &hints, &result);
*csock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (SOCKET_ERROR == connect(*csock, (SOCKADDR*)result->ai_addr, sizeof(SOCKADDR))) return WSAGetLastError();
return 0;
}
void Unplug(SOCKET* csock) {
closesocket(*csock);
WSACleanup();
}
string PostRequest(string host, string query, string data) {
string req = "POST " + query + " HTTP/1.1" + "\r\n";
req += "Host: " + host + "\r\n";
req += "Content-Type: application/x-www-form-urlencoded\r\n";
req += "Content-Length: " + to_string(data.length()) + "\r\n";
req += "Connection: Close";
req += "\r\n\r\n" + data + "\r\n\r\n";
SOCKET s;;
Plug(host, "80", &s);
Send(&s, req);
while (GetAvailable(&s) == 0) Sleep(10);
string result = Receive(&s);
//if (result.find("\r\n\r\n") == string::npos && DEBUG) return result;
//if (result.find("\r\n\r\n") == string::npos) return "PR_INVALID_RESPONSE";
//result = result.substr(result.find("\r\n\r\n") + 4, string::npos);
Unplug(&s);
return result;
}
int main() {
//https://discordapp.com/api/webhooks/705211476553629747/zwzqZMnTTgLtHBm3kc_DvvD71IW9FfE4ur-PQlkgeZhd56cT7UjSJCWI-V8wPiEUWV2w
std::cout<
}
Code: Select all
HTTP/1.1 301 Moved Permanently
Cache-Control: max-age=3600
Cf-Ray: 58bd304dec1ff2c0-WAW
Cf-Request-Id: 026a1c84ad0000f2c054113200000001
Date: Thu, 30 Apr 2020 00:36:28 GMT
Expires: Thu, 30 Apr 2020 01:36:28 GMT
Location: MYWEBHOOKURL
Server: cloudflare
Set-Cookie: __cfruid=5adc23f36cce3f0a398b8f9e91429b4349ef9314-1588206988; path=/; domain=.discordapp.com; HttpOnly
Vary: Accept-Encoding
Content-Length: 0
Connection: close
dies
Code: Select all
HTTP/1.1 403 Forbidden
Cache-Control: max-age=15
Cf-Ray: 58bd37782e6dffbc-WAW
Cf-Request-Id: 026a20ff1a0000ffbcc89df200000001
Content-Type: text/plain; charset=UTF-8
Date: Thu, 30 Apr 2020 00:41:21 GMT
Expires: Thu, 30 Apr 2020 00:41:36 GMT
Server: cloudflare
Set-Cookie: __cfduid=d4cb17401215362929759e2da8110f0e31588207281; expires=Sat, 30-May-20 00:41:21 GMT; path=/; domain=.162.159.129.233; HttpOnly; SameSite=Lax
Vary: Accept-Encoding
Content-Length: 16
Connection: close
error code: 1003