示例#1
0
void client(void)
{
    int s_source;
    struct sockaddr_in local;
    int len;

    diag_printf("client:started\n");
    
    ChangeMacAddr();
    
    init_all_network_interfaces();
    
    show_threads();
    
    s_source = socket(AF_INET, SOCK_DGRAM, 0);
    if (s_source < 0) {
        pexit("stream socket");
    }
    memset(&local, 0, sizeof(local));
    local.sin_family = AF_INET;
    local.sin_len = sizeof(local);
    local.sin_port = htons(SOURCE_PORT);
    local.sin_addr.s_addr = inet_addr("10.130.249.103");//htonl(INADDR_LOOPBACK);
    while(1)
    {
	    if ( (len= sendto(s_source,data_buf_write,sizeof(data_buf_write),
    	                  0,(struct sockaddr *)&local,sizeof(local))) < 0 ) {
        	//CYG_TEST_FAIL_FINISH("Error writing buffer");
        	cyg_thread_yield();
    	}
    	//else
    	//	diag_printf("sendto success\n");
    }
    close(s_source); 
}
void C51JobWebPost::RegisterFunc()
{
	m_iNeedChageIP = 0;
	m_iIpSuccNum = 0;
	CString sendStr = "";
	ShowMessage("初始化成功");
	if (g_iAotuChangeIp == 1)
	{
		sendStr.Format("自动换IP,单一IP注册数:%d",g_iIpRegNum);
		ShowMessage(sendStr);
	}	
	if (g_iAotuCheckCode==1)
	{
		ShowMessage("自动识别验证码");
	}
	m_strOldIP = "";
	while (!g_ExitFlag)
	{
// 		m_hwnd = ::FindWindow("#32770","帐号注册");
// 		while(!m_hwnd)
// 		{
// 			m_hwnd = ::FindWindow("#32770","帐号注册");
// 			ShowMessage("请打开客户端注册窗口");
// 			Sleep(1000);
// 		}
// 		char str[128] = {0};
// 		HWND hwnd = NULL;
// 		CWindowFind find;
// 		//hwnd = find.MyFindWindow("Internet Explorer_Server","",hwnd);
// 		hwnd = find.GetChildWindow(m_hwnd,1);
// 		hwnd = find.GetChildWindow(hwnd,1);
// 		hwnd = find.GetChildWindow(hwnd,1);
// 		hwnd = find.GetChildWindow(hwnd,1);
// 		GetClassName(hwnd,str,sizeof(str));//获取类名 
// 		if(strcmp(str,"Internet Explorer_Server")==0)
// 		{
// 			IHTMLDocument2 *pDoc = GetDocInterface(hwnd);
// 			GetHtmlCtrl(pDoc);
// 		}
// 		Sleep(1000);
// 		continue;
		if (g_RegisterList.GetSize() <= 0)
		{
			Sleep(500);
			continue;
		}
		
		m_iIpSuccNum = 0;
		m_iNeedChageIP = 1;
		int iErrorCount = 0;
		int iSameIpCount = 0;
// 		if (!g_iAotuChangeIp)//不需要自动换IP
// 		{
// 			//更换MAC地址
// 			if (m_iIsNeedChangeMac)
// 			{
// 				m_iIsNeedChangeMac = ChangeMacAddr();
// 				if (m_iIsNeedChangeMac == 1)
// 				{
// 					ShowMessage("修改MAC地址失败");
// 				}
// 				else
// 				{
// 					m_iIsNeedChangeMac = 0;
// 				}
// 			}
// 			else
// 			{
// 				ShowMessage("已经更换MAC地址");				
// 			}
// 		}
		CString strTest = "";
// 		while(GetGateWayIP(strTest) != 0)
// 		{
// 			Sleep(1000);
// 		}
		//ShowMessage("网络连接成功");	
		DeleteObjectExEx();
		while (m_iNeedChageIP && !g_ExitFlag && g_iAotuChangeIp == 1)	//如果需要换IP
		{
			m_iNeedChageIP = 1;
			g_RasMgr.StopRas(sendStr);
			ShowMessage(sendStr);
			//更换MAC地址
			if (m_iIsNeedChangeMac == 1)
			{
				 m_iIsNeedChangeMac = ChangeMacAddr();
				 if (m_iIsNeedChangeMac == 1)
				 {
					 ShowMessage("修改MAC地址失败");
				 }
				 else
				 {
					 m_iIsNeedChangeMac = 0;
				 }
			}
			else
			{
				 ShowMessage("已经更换MAC地址");
			}
			int iRet =  g_RasMgr.DialRas(sendStr);			
			ShowMessage(sendStr);
			if (iRet == 0)		//重新拨号成功,获取新的IP
			{
				if (g_iCheckIpFlag == 2)////POST检测
				{
					int iRet = -1;
					int iErrorNum = 0;
					while (iRet == -1)
					{
						iRet = GetGateWayIP(g_strCurrIP);
						if (iRet == -1)
						{
							iErrorNum++;
							sendStr.Format("获取本机Ip失败 %d 次,重试...",iErrorNum);
							ShowMessage(sendStr);							
							if (iErrorNum >= 3)
							{
								ShowMessage("获取本机Ip失败次数超过限制,跳过此操作...");
								g_strCurrIP = m_strOldIP;
								break;
							}
							Sleep(300);
						}
						else
						{
							ShowMessage("检测到本机Ip: "+g_strCurrIP);
						}
					}
					if (g_strCurrIP == m_strOldIP)
					{
						m_iNeedChageIP = 1;
						iSameIpCount ++;
						if (iSameIpCount < g_iReCheckIpCount)
						{
							sendStr.Format("Ip未更换,重复拨号[%d]...",iSameIpCount);
							ShowMessage(sendStr);
							Sleep(300);
							continue;
						}
						sendStr.Format("重复拨号次数[%d]超过限制仍未更换Ip,跳过此操作...",g_iReCheckIpCount);
						ShowMessage(sendStr);
						iSameIpCount = 0;
					}
					else	//IP更换成功
					{
						m_strOldIP = g_strCurrIP;
					}
				}
				else if (g_iCheckIpFlag == 1)//RAS检测
				{
					int iRet = -1;
					int iErrorNum = 0;
					while (iRet == -1)
					{
						iRet = g_RasMgr.GetGateWayIP(g_strCurrIP);
						if (iRet == -1)
						{
							iErrorNum++;
							sendStr.Format("获取本机Ip失败 %d 次,重试...",iErrorNum);
							ShowMessage(sendStr);
							if (iErrorNum >= 3)
							{
								ShowMessage("获取本机Ip失败次数超过限制,跳过此操作...");
								g_strCurrIP = m_strOldIP;
								break;
							}
							Sleep(300);
						}
						else
						{
							ShowMessage("检测到本机Ip: "+g_strCurrIP);
						}
					}
					if (g_strCurrIP == m_strOldIP)
					{
						m_iNeedChageIP = 1;
						iSameIpCount ++;
						if (iSameIpCount < g_iReCheckIpCount)
						{
							sendStr.Format("Ip未更换,重复拨号[%d]...",iSameIpCount);
							ShowMessage(sendStr);
							Sleep(500);
							continue;
						}
						sendStr.Format("重复拨号次数[%d]超过限制仍未更换Ip,跳过此操作...",g_iReCheckIpCount);
						ShowMessage(sendStr);
						iSameIpCount = 0;
					}
					else	//IP更换成功
					{
						m_strOldIP = g_strCurrIP;
					}
				}
				else{}//不检测
				iSameIpCount = 0;
				m_iNeedChageIP = 0;
				iErrorCount = 0;
				break;
			}
			iErrorCount ++;
			if (iErrorCount>=10)
			{
				ShowMessage("拨号连接失败次数过多,请确认您是使用ADSL拨号并且配置正确");
				return;
			}
			Sleep(500);
		}
		m_iIsNeedChangeMac = 0;
		m_iNeedChageIP = 0;
		if (!g_ExitFlag)
		{
			//ReOpenRegWindow();
			UserRegister();
		}		
		if (g_ExitFlag)
		{
			return;
		}
	}   
}
void C51JobWebPost::RegisterFunc()
{
	m_iNeedChageIP = 0;
	m_iIpSuccNum = 0;
	CString sendStr = "";
	ShowMessage("初始化成功");
	if (g_iAotuChangeIp == 1)
	{
		sendStr.Format("自动换IP,单一IP注册数:%d",g_iIpRegNum);
		ShowMessage(sendStr);
	}	
	if (g_iAotuCheckCode==1)
	{
		ShowMessage("自动识别验证码");
	}
	m_strOldIP = "";
	while (!g_ExitFlag)
	{
		if (g_RegisterList.GetSize() <= 0)
		{
			Sleep(500);
			continue;
		}
		
		m_iIpSuccNum = 0;
		m_iNeedChageIP = 1;
		int iErrorCount = 0;
		int iSameIpCount = 0;
		if (!g_iAotuChangeIp)		//不需要自动换IP
		{
			//更换MAC地址
			if (m_iIsNeedChangeMac)
			{
				m_iIsNeedChangeMac = ChangeMacAddr();
				if (m_iIsNeedChangeMac == 1)
				{
					ShowMessage("修改MAC地址失败");
				}
				else
				{
					m_iIsNeedChangeMac = 0;
				}
			}
			else
			{
				ShowMessage("已经更换MAC地址");				
			}
		}
		while (m_iNeedChageIP && !g_ExitFlag && g_iAotuChangeIp == 1)	//如果需要换IP
		{
			m_iNeedChageIP = 1;
			g_RasMgr.StopRas(sendStr);
			ShowMessage(sendStr);
			//更换MAC地址
			if (m_iIsNeedChangeMac == 1)
			{
				 m_iIsNeedChangeMac = ChangeMacAddr();
				 if (m_iIsNeedChangeMac == 1)
				 {
					 ShowMessage("修改MAC地址失败");
				 }
				 else
				 {
					 m_iIsNeedChangeMac = 0;
				 }
			}
			else
			{
				 ShowMessage("已经更换MAC地址");
			}
			int iRet =  g_RasMgr.DialRas(sendStr);			
			ShowMessage(sendStr);
			if (iRet == 0)		//重新拨号成功,获取新的IP
			{
				if (g_iCheckIpFlag == 2)////POST检测
				{
					int iRet = -1;
					int iErrorNum = 0;
					while (iRet == -1)
					{
						iRet = GetGateWayIP(g_strCurrIP);
						if (iRet == -1)
						{
							iErrorNum++;
							sendStr.Format("获取本机Ip失败 %d 次,重试...",iErrorNum);
							ShowMessage(sendStr);							
							if (iErrorNum >= 3)
							{
								ShowMessage("获取本机Ip失败次数超过限制,跳过此操作...");
								g_strCurrIP = m_strOldIP;
								break;
							}
							Sleep(300);
						}
						else
						{
							ShowMessage("检测到本机Ip: "+g_strCurrIP);
						}
					}
					if (g_strCurrIP == m_strOldIP)
					{
						m_iNeedChageIP = 1;
						iSameIpCount ++;
						if (iSameIpCount < g_iReCheckIpCount)
						{
							sendStr.Format("Ip未更换,重复拨号[%d]...",iSameIpCount);
							ShowMessage(sendStr);
							Sleep(300);
							continue;
						}
						sendStr.Format("重复拨号次数[%d]超过限制仍未更换Ip,跳过此操作...",g_iReCheckIpCount);
						ShowMessage(sendStr);
						iSameIpCount = 0;
					}
					else	//IP更换成功
					{
						m_strOldIP = g_strCurrIP;
					}
				}
				else if (g_iCheckIpFlag == 1)//RAS检测
				{
					int iRet = -1;
					int iErrorNum = 0;
					while (iRet == -1)
					{
						iRet = g_RasMgr.GetGateWayIP(g_strCurrIP);
						if (iRet == -1)
						{
							iErrorNum++;
							sendStr.Format("获取本机Ip失败 %d 次,重试...",iErrorNum);
							ShowMessage(sendStr);
							if (iErrorNum >= 3)
							{
								ShowMessage("获取本机Ip失败次数超过限制,跳过此操作...");
								g_strCurrIP = m_strOldIP;
								break;
							}
							Sleep(300);
						}
						else
						{
							ShowMessage("检测到本机Ip: "+g_strCurrIP);
						}
					}
					if (g_strCurrIP == m_strOldIP)
					{
						m_iNeedChageIP = 1;
						iSameIpCount ++;
						if (iSameIpCount < g_iReCheckIpCount)
						{
							sendStr.Format("Ip未更换,重复拨号[%d]...",iSameIpCount);
							ShowMessage(sendStr);
							Sleep(500);
							continue;
						}
						sendStr.Format("重复拨号次数[%d]超过限制仍未更换Ip,跳过此操作...",g_iReCheckIpCount);
						ShowMessage(sendStr);
						iSameIpCount = 0;
					}
					else	//IP更换成功
					{
						m_strOldIP = g_strCurrIP;
					}
				}
				else{}//不检测
				iSameIpCount = 0;
				m_iNeedChageIP = 0;
				iErrorCount = 0;
				break;
			}
			iErrorCount ++;
			if (iErrorCount>=10)
			{
				ShowMessage("拨号连接失败次数过多,请确认您是使用ADSL拨号并且配置正确");
				return;
			}
			Sleep(500);
		}
		m_iIsNeedChangeMac = 0;
		m_iNeedChageIP = 0;
		if (!g_ExitFlag)
		{
			UserRegister();
		}		
		if (g_ExitFlag)
		{
			return;
		}
	}
}