假设要判断某台机器打开了哪些tcp端口 该如何设计端口扫描程序

假设要判断某台机器打开了哪些tcp端口 该如何设计端口扫描程序,第1张

直接在命令提示符里面输入 netstat -a 就可以了。

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

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11185493.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存