假设要判断某台机器打开了哪些tcp端口 该如何设计端口扫描程序
直接在命令提示符里面输入 netstat -a 就可以了。
netstat -a 查看开启了哪些端口,常用netstat -a
netstat -n 查看端口的 *** 连接情况,常用netstat -an
端口被扫描的症状有哪些
扫描端口,一般是 端口段扫描或者固定端口扫描,扫描你的机器端口,除了占用一定的 *** ,没啥特别的症状,你可以用工具监测自己机器端口是不是被恶意访问,如ICESWORD等
设计一个判断端口是否开启的扫描器程序的源代码怎么写?
for(int i=0;i6;i++)
{
for(int j=0;j10;j++)
{
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;
}
*** 端口扫描属于本地扫描吗
*** 端口扫描不属于本地扫描。根据查询相关 *** 息显示:端口扫描技术原理是端口扫描向目标主机的TCP/IP服务端口发送探测数据包,并记录目标主机的响应。通过分析响应来判断服务端口是打开的还是关闭的,就可以得知端口提供的服务或信息,可以本地也可以远程。
0条大神的评论