📄 unicodedlg.cpp
字号:
{
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 + -