| Код | void CFTPscanDlg::OnBnClickedButton1() { WSAData wsd; if(WSAStartup(MAKEWORD(2,2), &wsd)!=0) { AfxMessageBox("Я немогу загрузить ws2"); return; } SOCKET s=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(s==SOCKET_ERROR) { AfxMessageBox("Коля, ты дурак! Я немогу создать сокет"); return; } SOCKADDR_IN serv; char begin_ip[256]; char port[256]; int start_ip, end_ip;
char part1[4],part2[4],part3[4],part4[4],part5[4]; m_ed1.GetWindowText(part1, 4); m_ed2.GetWindowText(part2, 4); m_ed3.GetWindowText(part3, 4); m_ed5.GetWindowText(part4, 4); m_ed6.GetWindowText(part5, 4); m_port.GetWindowText(port, 10); int iPort=atoi(port); start_ip=atoi(part4); end_ip=atoi(part5); char szOut[256]; serv.sin_family=AF_INET; serv.sin_port=htons(iPort); while(start_ip<=end_ip) { itoa(start_ip, part4, 10); strcpy(begin_ip, part1); strcat(begin_ip,"."); strcat(begin_ip, part2); strcat(begin_ip,"."); strcat(begin_ip, part3); strcat(begin_ip,"."); strcat(begin_ip, part4); serv.sin_addr.s_addr=inet_addr(begin_ip); m_list.AddString(begin_ip); if(connect(s, (SOCKADDR*)&serv, sizeof(serv))) { sprintf(szOut, "%1s closed", begin_ip); m_list.AddString(szOut); } else { sprintf(szOut, "%1s ------------- OPENED", begin_ip); m_list.AddString(szOut); shutdown(s, SD_BOTH); closesocket(s); s=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); } ProcessMessages(); start_ip++; } closesocket(s); WSACleanup();
}
|
m_ed - переменные-члены, относящиеся к Edit box'ам ввода IP(начального и конечного) m_port - поле ввода нужного порта
Я не уверен, что это хороший вариант |