Windows 10系统基于VS2022写代码遍历TCP连接表
时间: 2024-05-07 22:20:31 浏览: 17
在Windows 10系统上,可以使用Windows API函数来遍历TCP连接表。以下是一个使用C++编写的示例代码:
```cpp
#include <iostream>
#include <Windows.h>
#include <Mstcpip.h>
#pragma comment(lib, "ws2_32.lib")
int main() {
// 初始化Winsock
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {
std::cerr << "WSAStartup failed with error: " << WSAGetLastError() << std::endl;
return 1;
}
// 获取TCP连接表
PMIB_TCPTABLE2 pTcpTable;
DWORD dwSize = 0;
if (GetTcpTable2(nullptr, &dwSize, TRUE) == ERROR_INSUFFICIENT_BUFFER) {
pTcpTable = (PMIB_TCPTABLE2) new char[dwSize];
if (GetTcpTable2(pTcpTable, &dwSize, TRUE) != NO_ERROR) {
std::cerr << "GetTcpTable2 failed with error: " << GetLastError() << std::endl;
return 1;
}
} else {
std::cerr << "GetTcpTable2 failed with error: " << GetLastError() << std::endl;
return 1;
}
// 遍历TCP连接表
for (DWORD i = 0; i < pTcpTable->dwNumEntries; i++) {
MIB_TCPROW2& row = pTcpTable->table[i];
char localAddrStr[INET6_ADDRSTRLEN];
char remoteAddrStr[INET6_ADDRSTRLEN];
InetNtop(AF_INET6, &row.dwLocalAddr, localAddrStr, INET6_ADDRSTRLEN);
InetNtop(AF_INET6, &row.dwRemoteAddr, remoteAddrStr, INET6_ADDRSTRLEN);
std::cout << "Local address: " << localAddrStr << ":" << ntohs(row.dwLocalPort) <<
", Remote address: " << remoteAddrStr << ":" << ntohs(row.dwRemotePort) << std::endl;
}
// 释放资源
delete[] pTcpTable;
WSACleanup();
return 0;
}
```
该示例代码使用了Windows API函数`GetTcpTable2`来获取TCP连接表,然后遍历表中的每一项,输出本地地址和远程地址。注意需要在代码中链接`ws2_32.lib`库。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)