获取TCP,UDP服务端口号.rar
TCP,UDP服务端口,HMODULE hIpDLL = LoadLibrary( "iphlpapi.dll"); if ( !hIpDLL) return; PMIB_TCPTABLE_OWNER_PID pTcpTable(NULL); DWORD dwSize(0); PGet_Extended_TcpTable pGetExtendedTcpTable = NULL; pGetExtendedTcpTable = (PGet_Extended_TcpTable) GetProcAddress(hIpDLL, "GetExtendedTcpTable"); if(pGetExtendedTcpTable==NULL) { FreeLibrary(hIpDLL); return; } if(pGetExtendedTcpTable(pTcpTable, &dwSize, TRUE, AF_INET, TCP_TABLE_OWNER_PID_ALL, 0) == ERROR_INSUFFICIENT_BUFFER) pTcpTable = (MIB_TCPTABLE_OWNER_PID *)new char[dwSize];//重新分配缓冲区 if (pGetExtendedTcpTable(pTcpTable, &dwSize, TRUE, AF_INET, TCP_TABLE_OWNER_PID_ALL, 0) != NO_ERROR) { delete pTcpTable; return; } CString sTemp; m_PortList.DeleteAllItems(); int nNum = (int)pTcpTable->dwNumEntries; //TCP连接的数目 // nNum = 0; for (int i = 0; i<nNum; i++) { m_PortList.InsertItem(i,""); sTemp.Format("%03d",i+1); m_PortList.SetItemText(i,0,sTemp); m_PortList.SetItemText(i,1,"TCP"); m_PortList.SetItemText(i,3,FormatNumToIpv4(htonl(pTcpTable->table[i].dwLocalAddr))); sTemp.Format("%u",htons((WORD)pTcpTable->table[i].dwLocalPort)); m_PortList.SetItemText(i,4,sTemp); m_PortList.SetItemBgColor(i,4,RGB(210,0,0)); m_PortList.SetItemText(i,5,FormatNumToIpv4(htonl(pTcpTable->table[i].dwRemoteAddr))); sTemp.Format("%u",htons((WORD) pTcpTable->table[i].dwRemotePort)); m_PortList.SetItemText(i,6,sTemp); sTemp.Format("%u",pTcpTable->table[i].dwOwningPid); m_PortList.SetItemText(i,8,sTemp); //ProcessPidToName(pTcpTable->table[i].dwOwningPid,i); ProcessPidToNameX(pTcpTable->table[i].dwOwningPid,i); switch (pTcpTable->table[i].dwState) { case MIB_TCP_STATE_CLOSED: m_PortList.SetItemText(i,2,"CLOSED"); break; case MIB_TCP_STATE_LISTEN: m_PortList.SetItemText(i,2,"LISTEN"); break; case MIB_TCP_STATE_SYN_SENT: m_PortList.SetItemText(i,2,"SYN-SENT"); break; case MIB_TCP_STATE_SYN_RCVD: m_PortList.SetItemText(i,2,"SYN-RECEIVED"); break; case MIB_TCP_STATE_ESTAB: m_PortList.SetItemText(i,2,"ESTABLISHED"); break; case MIB_TCP_STATE_FIN_WAIT1: m_PortList.SetItemText(i,2,"FIN-WAIT-1"); break; case MIB_TCP_STATE_FIN_WAIT2: m_PortList.SetItemText(i,2,"FIN-WAIT-2"); break; case MIB_TCP_STATE_CLOSE_WAIT: m_PortList.SetItemText(i,2,"CLOSE-WAIT"); break; case MIB_TCP_STATE_CLOSING: m_PortList.SetItemText(i,2,"CLOSING"); break; case MIB_TCP_STATE_LAST_ACK: m_PortList.SetItemText(i,2,"LAST-ACK"); break; case MIB_TCP_STATE_TIME_WAIT: m_PortList.SetItemText(i,2,"TIME-WAIT"); break; case MIB_TCP_STATE_DELETE_TCB: m_PortList.SetItemText(i,2,"DELETE-TCB"); break; default: m_PortList.SetItemText(i,2,"UNKNOWN"); break; } } delete pTcpTable; FreeLibrary(hIpDLL);
- 1
- 粉丝: 2
- 资源: 48
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助