Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Cетевое програмирование на Builder 
:(
    Опции темы
witeman
  Дата 6.8.2005, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 29.3.2005
Где: г.Тюмень

Репутация: нет
Всего: нет



Пожалуйста подскажите как просканировать определенный
промежуток IP, на конкретный порт. Заранее благодарен.
smile

PM MAIL WWW   Вверх
WhiteSpirit
Дата 20.11.2005, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 1.6.2005
Где: Челябинск

Репутация: нет
Всего: нет



Смотри в книге Фленова "Делфи глазами Хакера"
--------------------
To beer or no to beer
PM MAIL   Вверх
Kill_em_all
Дата 22.11.2005, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 2.4.2005

Репутация: нет
Всего: нет



Код

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 - поле ввода нужного порта

Я не уверен, что это хороший вариант
PM MAIL   Вверх
witeman
Дата 12.12.2005, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 29.3.2005
Где: г.Тюмень

Репутация: нет
Всего: нет



smile Большое спасибо.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0647 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.