
netstat -a 查看开启了哪些端口,常用netstat -a
netstat -n 查看端口的网络连接情况,常用netstat -an
for(int i=0i<6i++){
for(int j=0j<10j++)
{
theport[j].rmt_host=rmt_host
theport[j].p=port[i*10+j]
theport[j].n=j
Thread[j]=AfxBeginThread(pScan,(LPVOID)&theport[j])
//启动端口扫描线程
hThread[j]=Thread[j]->m_hThread
Sleep(1)
}
WaitForMultipleObjects(10,hThread,TRUE,120000)
}
//扫描模块代码
SOCKET sockfd
SOCKADDR_IN addr
sockfd = socket(AF_INET, SOCK_STREAM, 0)
if (sockfd <0)
{
exit(0)
}
addr.sin_family = AF_INET
addr.sin_port = htons(port)
addr.sin_addr.s_addr = inet_addr(rmt_host)
int r = connect(sockfd,(struct sockaddr *) &addr, sizeof(addr))
//尝试连接端口进行检测
closesocket(sockfd)
//连接返回值处理
if (r!=-1)
{
::PostMessage(hWnd,WM_DISPLAY,port,0)
}
//显示端口扫描结果
LONG CScanDlg::OnDisplay(LONG lParam, UINT wParam)
{
LPSERVENT bar
CString open
int p=lParam
bar = getservbyport(htons(p),"tcp")
open.Format("\t%d号端口(%s)开放!\r\n",p,(bar == NULL) ? "未知" :
bar->s_name)
m_HistoryEdit.AppendString (open)
return 0
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)