Вопрос новичка про сети

Тема в разделе "WASM.BEGINNERS", создана пользователем strange2007, 23 янв 2011.

  1. strange2007

    strange2007 New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2010
    Сообщения:
    126
    Здравствуйте. Я начинающий програамист. Подскажите как в сети просканировать компы на наличие. Т.е. аналог пинга по всем адресам. Может есть какие эффективные методы? Может уже есть тут подобные обсуждения? Я что-то не нашел (плохо искал)
    Спасибо
     
  2. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    strange2007
    Так может?
    Код (Text):
    1. nmap -sP 1-255.1-255.1-255.1-255
    Код (Text):
    1. nmap [Scan Type...] [Options] {target specification}
    2. HOST DISCOVERY:
    3. -sL: List Scan - simply list targets to scan
    4. -sP: Ping Scan - go no further than determining if host is online
    5. -P0: Treat all hosts as online -- skip host discovery
    6. -PS/PA/PU [portlist]: TCP SYN/ACK or UDP discovery to given ports
    7. -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes
    8. -n/-R: Never do DNS resolution/Always resolve [default: sometimes]
    9. --dns-servers <serv1[,serv2],...>: Specify custom DNS servers
    10. --system-dns: Use OS’s DNS resolver
     
  3. strange2007

    strange2007 New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2010
    Сообщения:
    126
    Хм, что-то не могу найти в винапи
     
  4. eshkinkot

    eshkinkot New Member

    Публикаций:
    0
    Регистрация:
    6 май 2010
    Сообщения:
    73
    В локальной сети можешь использовать АПИ SendARP, либо формировать ICMP-пакет
     
  5. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    strange2007
    nmap - линуксовая команда, а не виндовое апи

    результаты выдает примерно такие
    Код (Text):
    1. [cr@localhost ~]$ nmap -sP 192.168.1.1-255
    2.  
    3. Starting Nmap 5.21 ( http://nmap.org ) at 2011-01-24 08:30 MSK
    4. Nmap scan report for 192.168.1.1
    5. Host is up (0.0012s latency).
    6. Nmap scan report for 192.168.1.2
    7. Host is up (0.00023s latency).
    8. Nmap done: 255 IP addresses (2 hosts up) scanned in 15.51 seconds
    9. [cr@localhost ~]$
     
  6. strange2007

    strange2007 New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2010
    Сообщения:
    126
    Упс, я же не правильно вопрос задал. Приношу извинения
     
  7. strange2007

    strange2007 New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2010
    Сообщения:
    126
    Здравствуйте еще раз. Подскажите что почитать про сетевые технологии по сетям.
     
  8. strange2007

    strange2007 New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2010
    Сообщения:
    126
    на WinAPI
     
  9. krabz

    krabz New Member

    Публикаций:
    0
    Регистрация:
    26 май 2010
    Сообщения:
    135
    на WinAPI - MSDN.
     
  10. strange2007

    strange2007 New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2010
    Сообщения:
    126
    Ага, клево. Может есть что-то конкретней? Куда рыть хотя бы? Я совсем ни чего не знаю. Даже не представляю с чего начинать
     
  11. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    ну ты беспомощный...
    Тебе что нужно? Получить сетевые адреса.
    Набирай в гугле "получитьсетевой" (слитно, т.к. имена функций пишутся слитно) на английском (getnetwork) и смотри на suggestions в строке набора и на ссылки, ведущие в мсдн.
     
  12. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    Наверное нужно скачать что-то типа
    "Интернет: первые шаги",
    потом что-то например "Администрирование сети на примерах"
    Потом "Cети Linux "
    и что-то Йона Шнайдера ...

    Пока не упрешься и не вычитаешь терминологию - думаю не прорвешься.
     
  13. xanxy

    xanxy New Member

    Публикаций:
    0
    Регистрация:
    18 май 2010
    Сообщения:
    18
    Пример более менее эффективного метода сканирования портов. Смысл в неблокируемых сокетах. Под линукс будет примерно похоже, только там евенты заменяются на select.
    Если честно не знаю как ICMP а не TCP пакеты посылать:) по идее надо поменять параметры для вызова socket..

    Код (Text):
    1.       #include <cstdlib>
    2.       #include <iostream>
    3.       #include <winsock2.h>
    4.       #define N 10
    5.       #define PORT 80
    6.       using namespace std;
    7.        
    8.       int check();
    9.        
    10.       int main(int argc, char *argv[])
    11.       {
    12.           check();
    13.           system("PAUSE");
    14.           return EXIT_SUCCESS;
    15.       }
    16.        
    17.       int check()
    18.       {
    19.           char *a[]={"74.125.87.103", "74.125.87.105", "74.125.87.99","10.10.0.4", "74.125.87.147","10.10.0.1","74.125.87.106", "74.125.87.104","10.10.0.2","10.10.0.3",};
    20.           WSADATA wsaData;
    21.           WSAStartup(MAKEWORD(2,2), &wsaData);
    22.        
    23.           SOCKET hSocket[N];
    24.           WSAEVENT ev[N];
    25.           int i;
    26.           struct sockaddr_in addr;
    27.           for(i = 0;i<N;i++)
    28.           {
    29.               hSocket[i] = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
    30.               addr.sin_family = AF_INET;
    31.               addr.sin_port = htons (PORT);
    32.               addr.sin_addr.s_addr  = inet_addr(a[i]);
    33.               ULONG ulBlock = 1;
    34.               if (ioctlsocket(hSocket[i], FIONBIO, &ulBlock) ==  SOCKET_ERROR)
    35.               {
    36.                   return 0;
    37.               }
    38.               connect(hSocket[i], (struct sockaddr *) &addr, sizeof (addr));
    39.               ev[i] = WSACreateEvent();
    40.               WSAEventSelect(hSocket[i],ev[i],FD_WRITE);
    41.           }
    42.        
    43.           while(1)
    44.           {
    45.               DWORD Index = WSAWaitForMultipleEvents(N, ev, FALSE, 5000, FALSE);  
    46.               if(Index==WSA_WAIT_TIMEOUT)
    47.                   break;
    48.               else if(Index>=WSA_WAIT_EVENT_0)
    49.               {
    50.                   int i=Index-WSA_WAIT_EVENT_0;
    51.                   cout<<a[i]<<":"<<PORT<<" is open\n";
    52.                   WSAResetEvent(ev[i]);
    53.                   closesocket(hSocket[i]);
    54.               }
    55.           }
    56.            cout<<"done\n";
    57.       }
     
  14. artkar

    artkar New Member

    Публикаций:
    0
    Регистрация:
    17 авг 2005
    Сообщения:
    400
    Адрес:
    Russia
    xanxy
    Человек вроде просил просканировать сеть, а не комп на сокеты???
     
  15. krabz

    krabz New Member

    Публикаций:
    0
    Регистрация:
    26 май 2010
    Сообщения:
    135
    strange2007
    ОК. Если интересуют просто сетевые API для TCP или UDP, то копать в сторону sockets, winsock. Даже в MSDN всё разжёвано и с семплами. Более того, механизм аналогичен UNIX, поэтому в сети по этой теме есть куча инфы ещё более нубского уровня.

    Если интересует PING и ICMP, то копать по этим ключевым словам. В винде это делается через iphlpapi.dll, либо через raw sockets - у меня таким образом удавалось с ICMP пакетами работать, но это требует прав админа.

    Больше ничего не могу подсказать.
     
  16. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    Если человек хочт нормальный сканер сделать.
    То для начала, ставим linux..или free... изучаем как формировать tcp или любые другие пакеты, и отправлять их в сеть, в unix. (описание почти в любой книге для кулл хацкеров.. например "программирование боевого софта под linux").
    Да и вообще, прикладной уровень оч хорошо описан в книгах Стивенса.
    Почитай, и вопросы отпадут.
    например эту книгу http://www.booksgid.com/operating_s...2-unix.-razrabotka-setevykh-prilozhenijj.html
     
  17. strange2007

    strange2007 New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2010
    Сообщения:
    126
    Ух!!!! Спасибо всем!!!!! Инфа самое то!
    Да, я делаю маленький сканер. Типа, что бы знать кто или что у меня в сети. Из-за того, что не знал какие технологии есть и задал вопрос как сумел. Книги все читаю. Проблема только в мсдне, фигово он мне даётся. Не могу еще его раскусить до конца, но это поправимо
    Пошел пробовать
     
  18. strange2007

    strange2007 New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2010
    Сообщения:
    126
    Ах да, почему такое спрашиваю? Конечно, сначала у гугля и яндекса спрашивал. Собираю инфу. Но, согласно накопленному опыту знаю, что в некоторых случаях из нескольких решений есть более оптимальное или специфичное под задачу. Усредненное решение толпы спецов будет как раз самое верное. Тут только надо правильно задать вопрос
    В общем, креста, не суди так сильно, во всем есть смысл
     
  19. xanxy

    xanxy New Member

    Публикаций:
    0
    Регистрация:
    18 май 2010
    Сообщения:
    18
    что?