18,356
社区成员
发帖
与我相关
我的任务
分享
//向网络发送ARP包和ICMP包
ulNetwork=ntohl(ipAddr) & (0xffffff00);
int nIP=1;
for(int n=1; n<255; n++) //IP:1-254
{
ipAddr=htonl(ulNetwork+n);
IPAddr *lpIPAddr=new(IPAddr);
if(lpIPAddr==NULL)
continue;
(*lpIPAddr)=ipAddr; //要发往的IP地址
while(ThreadCounter>=30) //可同时运行30个线程
if(CheckStatus(nIP, FALSE)) //线程已满,检查扫描情况
nIP++;
hThread=CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)SendArp,(LPVOID)lpIPAddr, 0, &ThreadID);
CloseHandle(hThread);
}
//继续输出扫描结果
while(nIP<255)
if(CheckStatus(nIP, TRUE))
nIP++;
//输出找到的主机数
if (FoundCounter)
printf(" %d Found.", FoundCounter);
else
printf("Scan your LAN only, don't try to scan IPs not in your LAN.");
if(bPing)
{
closesocket(sock);
WSACleanup();
}