⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unicodedlg.cpp

📁 <VC++网络游戏建摸与实现>源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	{
	CString sInvalidAddr="IP地址范围不正确。";
	sInvalidAddr+="请输入n.n.n.n格式地址。";
	MessageBox(sInvalidAddr,"无效地址",MB_ICONEXCLAMATION);
	GetDlgItem(IDC_EDIT2)->SetFocus();
	return;
	}
    if (nEndVal-nStartVal>5000)
	{
	CString sInvalidAddr="IP地址范围不能超过5000。";
	//sInvalidAddr+="请输入n.n.n.n格式地址。";
	MessageBox(sInvalidAddr,"无效地址",MB_ICONEXCLAMATION);
	GetDlgItem(IDC_EDIT2)->SetFocus();
	return;
	}

	count=nEndVal-nStartVal+1;

	m_ani1.Play(0,-1,-1); 
//    _tagHost* pHost=new _tagHost[count];
	UINT n1,n2,n3,n4;
	n1=nStartAddr1;
	n2=nStartAddr2;
	n3=nStartAddr3;
	n4=nStartAddr4;

	BOOL bContinue=true;

	for (int i=0;i<count;i++)
	{

		host[i].strIP.Format("%d.%d.%d.%d",n1,n2,n3,n4); 
		host[i].bFinished=false; 
		host[i].bProxy =false;
		host[i].strName="" ;
		host[i].strProxyName="";
		host[i].uPort=80;
		host[i].uProxyPort=0; 
		if((n1==nEndAddr1)&&
	      (n2==nEndAddr2)&&
	      (n3==nEndAddr3)&&
	      (n4==nEndAddr4)) break;
		else
		{
			n4++;
			if(n4>255)
			{
				n4=0;
				n3++;
				if(n3>255)
				{
					n3=0;
					n2++;
					if(n2>255)
					{
						n2=0;
						n1++;
					}//end n2
				}//end n3
			}//end n4
		}

	}

	CString strTemp="开始地址" + host[0].strIP;
	TRACE0(strTemp);

	strTemp="结束地址" + host[count-1].strIP;
	TRACE0(strTemp);
	CString strThread;
	////////////////////////////////////
	for ( i=0;i< nTotalNum;i++)
	{
	if (i==count) break;
	session.Lock(); 
	thread[i].nThreadFlag =3;
	thread[i].nThreadNum =i+1;
	thread[i].pHost =&host[i];
	thread[i].strMsg ="";
	nThreadCount++;
	nCurrent++;
	session.Unlock(); 
	strThread.Format("%d/100",nThreadCount);
	SetDlgItemText(IDC_STATICOUNT,strThread);
	blnRunning=true;
	AfxBeginThread(ClientSocketThreadProc,(LPVOID)&thread[i],0,0,0,NULL);
	strTemp.Format("线程%d开始连接%s...",i+1,thread[i].pHost->strIP);
	m_result.AddString(strTemp);
	UpdateData(false);
	}

//	GetDlgItem(IDOK)->EnableWindow(false);
	btn1.EnableWindow(false);


}

void CUnicodeDlg::OnChangeEdit1() 
{
	// TODO: If this is a RICHEDIT control, the control will not

	// TODO: Add your control notification handler code here
    UpdateData(true);
	m_endip=m_startip;
	CString strTemp,strTemp1;
	strTemp=m_startip;
	strTemp.TrimLeft();
    int nPos;
	nPos=strTemp.Find(".");
	if (nPos==-1) 
	{
	    UpdateData(false);
    	return;
	}
	strTemp1=strTemp.Left(nPos); 
	strTemp1=strTemp1+"."; 
	strTemp=strTemp.Mid(nPos+1);

	nPos=strTemp.Find(".");
	if (nPos==-1) 
	{
	    UpdateData(false);
    	return;
	}
	strTemp1=strTemp1+strTemp.Left(nPos); 
	strTemp1=strTemp1+"."; 
	strTemp=strTemp.Mid(nPos+1);
	nPos=strTemp.Find(".");
	if (nPos==-1) 
	{
	    UpdateData(false);
    	return;
	}

	strTemp1=strTemp1+strTemp.Left(nPos); 
	strTemp1=strTemp1+"."; 
	strTemp=strTemp.Mid(nPos+1);
	if (atoi(strTemp)==1)
	{
		strTemp1=strTemp1+"255";
		m_endip=strTemp1;
	}

   UpdateData(false);
	
}

void CUnicodeDlg::OnStop() 
{
	blnRunning=false;
//	m_ani1.Stop(); 	
	//GetDlgItem(IDOK)->EnableWindow(true);
	btn1.EnableWindow(true);
}

void CUnicodeDlg::OnButton2() 
{
	//m_result.RemoveAll();
	return;
	// TODO: Add your control notification handler code here
	UINT nStartAddr1,nStartAddr2,nStartAddr3,nStartAddr4;

	UpdateData(true);

	if (!ValidAddress(m_startip,
					  nStartAddr1,
					  nStartAddr2,
					  nStartAddr3,
					  nStartAddr4))
	{
	CString sInvalidAddr=m_startip + "\r\nIP地址格式不正确。";
	sInvalidAddr+="请输入n.n.n.n格式地址。";
	MessageBox(sInvalidAddr,"无效地址",MB_ICONEXCLAMATION);
	GetDlgItem(IDC_EDIT1)->SetFocus();
	return;
	}
    
	m_ani1.Play(0,-1,-1); 
	CString strSql,strIP1,strIP2;
	COleVariant COleIp1,COleIp2;
	strSql="select * from wry order by endip asc";

	if (m_pSet->IsOpen()) m_pSet->Close();
	try{
		
		m_pSet->Open(dbOpenDynaset,strSql,dbReadOnly); 
	}
	catch(CDaoException * e)
	{
		e->ReportError();
		e->Delete();
		return ;
	}	
	while (!m_pSet->IsEOF())
	{
		//
		m_pSet->GetFieldValue(0,COleIp1); 
		m_pSet->GetFieldValue(1,COleIp2);
	
	

	unsigned long Ips,StartIp,EndIp;
	CString strTemp,strTemp1,strTemp2,strResult;

	Ips=SplitIp(m_startip);

	StartIp=SplitIp(strTemp1);
	EndIp=SplitIp(strTemp2);
	if ((Ips< EndIp+1) && (Ips >StartIp-1))
		{
	//	strResult.Format("%d,%s",i, strTemp); 
		break;
		}
		m_pSet->MoveNext(); 
	}
	//		strIP2.Format("%d",m_pSet->GetRecordCount()); 
	//		MessageBox (strIP2);
	m_ani1.Stop(); 
}

	
unsigned long CUnicodeDlg::SplitIp(CString strIp)
 {
		int ip1, ip2,ip3,ip4;
		int nPos;
		unsigned long result;
		ip1=atoi(LPCSTR(strIp));
	    nPos=strIp.Find(".");
		strIp=strIp.Mid (nPos+1);
		ip2=atoi(LPCSTR(strIp));
	    nPos=strIp.Find(".");
		strIp=strIp.Mid (nPos+1);
		ip3=atoi(LPCSTR(strIp));
	    nPos=strIp.Find(".");
		strIp=strIp.Mid (nPos+1);
		ip4=atoi(LPCSTR(strIp));
       // result=ip1*2500000000+ip2*1000000+ip3*1000+ip4;  //合成一个
		int sip1,sip2,sip3,sip4;
		sip1=ip1;
		sip2=ip2;
		sip3=ip3;
		sip4=ip4;
		result=(sip1<<24)+(sip2<<16)+(sip3<<8)+ip4;  //合成一个

	    return result;
	 }

BOOL CAboutDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	HCURSOR hCur;
	hCur=AfxGetApp()->LoadCursor(IDC_HAND);

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

LRESULT CUnicodeDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
	CString strTemp;
	CString strThread;
	_tagThread * pThread;
	switch(message)
	{
	case WM_SCAN:
		 strTemp=LPCSTR(lParam);	
		 m_result.AddString(strTemp);
		 break;
	case WM_SCANOVER:

		pThread=(_tagThread*)wParam;
		strTemp.Format("线程%d结束---->%s",pThread->nThreadNum,pThread->strMsg);
	//	MessageBox(strTemp);
		m_result.AddString(strTemp);

		strThread.Format("%d/100",nThreadCount);
		SetDlgItemText(IDC_STATICOUNT,strThread);
        //总数达到
		if (nThreadCount==0)
		{
		btn1.EnableWindow(true);
		m_ani1.Stop();
		break;
		}
		//结束
		if (!blnRunning)
		{
		btn1.EnableWindow(true);
		m_ani1.Stop();
		break;
		}

		if (nCurrent>count-1) break;
		session.Lock(); 
		pThread->nThreadFlag =3;
		pThread->pHost =&host[nCurrent];
		pThread->strMsg ="";
		nThreadCount++;
		nCurrent++;
		session.Unlock(); 
		blnRunning=true;
		AfxBeginThread(ClientSocketThreadProc,(LPVOID)pThread,0,0,0,NULL);
		strTemp.Format("线程%d开始连接%s...",pThread->nThreadNum,pThread->pHost->strIP);
		m_result.AddString(strTemp);

		UpdateData(false);

		break;
	case WM_SCANSTART:

		 break;
	default:
		;
	}

	return CDialog::WindowProc(message, wParam, lParam);
}

void CUnicodeDlg::OnClear() 
{
    m_result.ResetContent();	
   	m_result.AddString("     欢迎使用思想软件安全扫描工具");
	m_result.AddString("台湾自古以来是中国的领土");
	m_result.AddString("版权所有,翻版必究!Copyright (c) by suyu 2001");
	m_result.AddString("HTTP://WWW.WANTSOFT.COM");
	m_result.AddString("QQ:65604295");

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -