Гость
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Скан ИП адресов локальной сети / 25 сообщений из 26, страница 1 из 2
02.08.2021, 17:25
    #40087916
masterwin113
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
Здравствуйте.
Подскажите пожалуйста что не так?
Срабатывает эти showmessage сообщения.
Ошибок нет.
Но почему-то EntrReq=0.

WNetOpenEnum NO_ERROR 23330048 (twx)
WNetEnumResource NO_ERROR 0 (EntrReq)

Delphi 10.4.2

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
procedure TForm1.Button16Click(Sender: TObject);
Type
  PNRArr = ^TNRArr;
  TNRArr = array[0..512] of TNetResource;
var Result,EntrReq,SizeReq: Cardinal;
    twx: NativeUInt;
    x: PNRArr;
begin
 Result :=WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, RESOURCEUSAGE_CONTAINER, nil, twx);
 case Result of
  0: begin
       showmessage('WNetOpenEnum NO_ERROR '+twx.ToString);
       if twx<>0 then
       begin
        New(x);
        Result := WNetEnumResource(twx, EntrReq, x, SizeReq);
        case Result of
          0: begin
              showmessage('WNetEnumResource NO_ERROR '+EntrReq.ToString);
             end;
          1222: showmessage('WNetEnumResource ERROR_NO_NETWORK '+EntrReq.ToString);
        end;
       end;
     end;
  1222: showmessage('WNetOpenEnum ERROR_NO_NETWORK '+twx.ToString);
 end;
 WNetCloseEnum(twx);
end;
...
Рейтинг: 0 / 0
02.08.2021, 17:32
    #40087921
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
Где инициализация EntrReq и SizeReq?

Про удаление x я молчу
...
Рейтинг: 0 / 0
02.08.2021, 17:54
    #40087931
masterwin113
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
WNetOpenEnum NO_ERROR 23330048 (twx)
234(ERROR_MORE_DATA) WNetEnumResource 0 (EntrReq)

Все равно получаю EntrReq=0
Что я не правильно делаю?

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
procedure TForm1.Button16Click(Sender: TObject);
Type
  PNRArr = ^TNRArr;
  TNRArr = array[0..512] of TNetResource;
var Result,EntrReq,SizeReq: Cardinal;
    twx: NativeUInt;
    x: PNRArr;
begin
 Result :=WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, RESOURCEUSAGE_CONTAINER, nil, twx);
 case Result of
  0: begin
       showmessage('WNetOpenEnum NO_ERROR '+twx.ToString);
       if twx<>0 then
       begin
        New(x);
        SizeReq := SizeOf(x);
        EntrReq := Cardinal(-1);
        Result := WNetEnumResource(twx, EntrReq, x, SizeReq);
        case Result of
          NO_ERROR: begin
                     showmessage('WNetEnumResource NO_ERROR '+EntrReq.ToString);
                    end;
          ERROR_NO_NETWORK: showmessage('WNetEnumResource ERROR_NO_NETWORK '+EntrReq.ToString);
          else showmessage(Result.ToString+' WNetEnumResource '+EntrReq.ToString);
        end;
       end;
     end;
  1222: showmessage('WNetOpenEnum ERROR_NO_NETWORK '+twx.ToString);
 end;
 WNetCloseEnum(twx);
end;
...
Рейтинг: 0 / 0
02.08.2021, 17:58
    #40087935
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
Код: pascal
1.
SizeReq := SizeOf(x^);
...
Рейтинг: 0 / 0
02.08.2021, 18:06
    #40087942
masterwin113
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
Спасибо большое добрый человек.
Я не знаю как иначе вас поблагодарить на этом сайте.
Я бы все плюсики поставил вам.
Я уже неделю гуглю.
...
Рейтинг: 0 / 0
02.08.2021, 18:30
    #40087951
masterwin113
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
Рано порадовался.
Я получаю только три строки

Microsoft Terminal Services
Microsoft Windows Network
Web Client Network

Как получить список компьютеров?
...
Рейтинг: 0 / 0
02.08.2021, 18:31
    #40087952
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
...
Рейтинг: 0 / 0
02.08.2021, 18:40
    #40087957
masterwin113
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
Я все это перепробовал.
Все примеры показывают эти три строчки.
Если больше вариантов нет, пойду напьюсь))
...
Рейтинг: 0 / 0
02.08.2021, 18:48
    #40087961
masterwin113
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
Результат

Microsoft Terminal Services
Microsoft Terminal Services
Microsoft Windows Network
Microsoft Windows Network
Web Client Network
Web Client Network


Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
procedure TForm1.Button16Click(Sender: TObject);
Type
  PNRArr = ^TNRArr;
  TNRArr = array[0..512] of TNetResource;
var Result,EntrReq,SizeReq: Cardinal;
    twx: NativeUInt;
    x: PNRArr{PNETRESOURCE};
    i:integer;
begin
 Result :=WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, {RESOURCEUSAGE_CONTAINER}0, nil, twx);
 case Result of
  0: begin
       showmessage('WNetOpenEnum NO_ERROR '+twx.ToString);
       if twx<>0 then
       begin
        New(x);
        SizeReq := 16384;
        EntrReq := Cardinal(-1);
        //x  := PNETRESOURCE(GlobalAlloc(GPTR, SizeReq));
        Result := WNetEnumResource(twx, EntrReq, x, SizeReq);
        case Result of
          NO_ERROR: begin
                     showmessage('WNetEnumResource NO_ERROR '+EntrReq.ToString);
                     For i := 0 To EntrReq - 1 do
                     begin
                      RichEdit1.Lines.Add(x^[i].lpProvider);
                      RichEdit1.Lines.Add(x^[i].lpRemoteName);
                     end;
                    end;
          ERROR_NO_NETWORK: showmessage('WNetEnumResource ERROR_NO_NETWORK '+EntrReq.ToString);
          else showmessage(Result.ToString+' WNetEnumResource '+EntrReq.ToString);
        end;
       end;
     end;
  1222: showmessage('WNetOpenEnum ERROR_NO_NETWORK '+twx.ToString);
 end;
 WNetCloseEnum(twx);
end;
...
Рейтинг: 0 / 0
02.08.2021, 18:52
    #40087965
masterwin113
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
Может процедуре WNetOpenEnum неправильные параметры передаю?
...
Рейтинг: 0 / 0
03.08.2021, 09:27
    #40088088
d7i
d7i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
Я использовал https://docs.microsoft.com/en-us/windows/win32/api/lmserver/nf-lmserver-netserverenum
(правда на Си, но это непринципиально) и всё прекрасно работает. Только надо не забыть перекодировать данные
в ANSI и сделать разбор IP в формат ХХХ.ХХХ.ХХХ.ХХХ.
...
Рейтинг: 0 / 0
03.08.2021, 19:59
    #40088367
masterwin113
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
Запустил этот код на Visual C++. На выходе ошибка
NetServerEnum failed with error: 6118
(
...
Рейтинг: 0 / 0
03.08.2021, 20:05
    #40088370
s62
s62
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
masterwin113,

почитай доку по WNetOpenEnum. Если какой-то из ресурсов - контейнер, как у тебя, то надо его раскрывать, чтобы получить, что в нём.
авторTo enumerate all network resources, an application can begin the enumeration by calling WNetOpenEnum with the lpNetResource parameter set to NULL, and then use the returned handle to call WNetEnumResource to enumerate resources. If one of the resources in the NETRESOURCE array returned by the WNetEnumResource function is a container resource, you can call WNetOpenEnum to open the resource for further enumeration.
Microsoft Windows Network скорей всего - контейнер. По-моему в XP или windows 98 сетевое окружение так и открывалось: сначала вот эта сеть микрософт, а потом раскрываешь её, а там все расшаренные диски подряд (это в рабочей группе было).
...
Рейтинг: 0 / 0
03.08.2021, 20:41
    #40088386
masterwin113
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
Вот сделал как вы говорили
Все что в {} это мои эксперименты(неудачные)

Результат
i: 0
i: 0 i2: 0
i: 0 i2: 1 Microsoft Terminal Services
i: 0 i2: 2 Microsoft Windows Network
i: 1 Microsoft Terminal Services
i: 2 Microsoft Windows Network


Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
procedure TForm1.Button16Click(Sender: TObject);
Type
  PNRArr = ^TNRArr;
  TNRArr = array[0..512] of TNetResourceW;
var Result1,Result2,Result3,Result4,EntrReq,EntrReq2,SizeReq,SizeReq2: Cardinal;
    twx,twx2: NativeUInt;
    x,x2: array[1..MaxEntries] of TNetResource;{PNRArr;}{PNETRESOURCE;}
    i,i2:integer;
    //Network,Network2: TNetResource;
begin



{ FillChar(Network, SizeOf(Network), 0);
 with Network do
 begin
  dwScope := RESOURCE_GLOBALNET;
  dwType := RESOURCETYPE_ANY;
  dwUsage := RESOURCEUSAGE_CONTAINER;
 end;}



 Result1 :=WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, RESOURCEUSAGE_CONTAINER, nil{@Network}, twx);
 case Result1 of
  0: begin
       //showmessage('WNetOpenEnum NO_ERROR '+twx.ToString);
       if twx<>0 then
       begin
        //New(x);
        SizeReq := {16384}SizeOf(x);
        EntrReq := Cardinal(-1);
        //x  := PNETRESOURCE(GlobalAlloc(GPTR, SizeReq));
        Result2 := WNetEnumResource(twx, EntrReq, @x, SizeReq);
        case Result2 of
          NO_ERROR:
           begin
            //showmessage('WNetEnumResource NO_ERROR '+EntrReq.ToString);
            For i := 0 To EntrReq - 1 do
            begin
             RichEdit1.Lines.Add('i: '+i.ToString+' '+x[i].lpRemoteName);


             Result3 := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, {RESOURCEUSAGE_CONTAINER}0, @x[i], twx2);
             case Result3 of
               NO_ERROR:
                begin
                 //showmessage('i: '+i.ToString+' WNetOpenEnum2 NO_ERROR '+twx2.ToString);

                 SizeReq2 := SizeOf(x2);
                 EntrReq2 := Cardinal(-1);
                 Result4 := WNetEnumResource(twx2, EntrReq2, @x2, SizeReq2);
                 case Result4 of
                  NO_ERROR:
                   begin


                    //showmessage('i: '+i.ToString+' WNetEnumResource2 NO_ERROR '+EntrReq2.ToString);
                    For i2 := 0 To EntrReq2 - 1 do
                     begin
                      RichEdit1.Lines.Add('i: '+i.ToString+' i2: '+i2.ToString+' '+x2[i2].lpRemoteName);
                     end;



                   end;
                  {ERROR_NO_NETWORK: showmessage('i: '+i.ToString+' WNetEnumResource2 ERROR_NO_NETWORK '+EntrReq2.ToString);}
                  else showmessage('i: '+i.ToString+' Result4: '+Result4.ToString+' WNetEnumResource2 '+EntrReq2.ToString);
                 end;
                 WNetCloseEnum(twx2);
                end;
               {1222: showmessage('i: '+i.ToString+' WNetOpenEnum2 ERROR_NO_NETWORK '+twx2.ToString);
               else showmessage('i: '+i.ToString+' Result3: '+Result3.ToString+' WNetOpenEnum2 '+EntrReq2.ToString);}
             end;
            end;
            WNetCloseEnum(twx);
           end;
          {ERROR_NO_NETWORK: showmessage('WNetEnumResource ERROR_NO_NETWORK '+EntrReq.ToString);
          else showmessage('Result2: '+Result2.ToString+' WNetEnumResource '+EntrReq.ToString);}
        end;
       end;

     end;
  {1222: showmessage('WNetOpenEnum ERROR_NO_NETWORK '+twx.ToString);
  else showmessage('Result1: '+Result1.ToString+' WNetOpenEnum '+EntrReq.ToString);}
 end;
 //WNetCloseEnum(twx);
end;
...
Рейтинг: 0 / 0
03.08.2021, 20:49
    #40088389
d7i
d7i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
Вот код на Си, который работает 100% (там есть нюансы, так как он не для MS VC, а для Power++:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
   char *Buf;
   wchar_t *buff;
   char * szBuf;
   char  tbuf[16384];
   char mbuf[81];
   WInt i,TotalCount,result;
   int  cc;
   LPSERVER_INFO_101 pBuf; 
 //  DWORD dwServerType = SV_TYPE_SERVER;            // список серверов
   DWORD dwServerType = 0xffffffff;          // список всего
   NET_API_STATUS nStatus;

   tbuf[0]=0;
   pBuf = NULL;
   LPSERVER_INFO_101 pTmpBuf;
   DWORD dwLevel = 101;
   DWORD dwPrefMaxLen = -1;
   DWORD dwEntriesRead = 0;
   DWORD dwTotalEntries = 0;
   DWORD dwResumeHandle = 0;
   LPTSTR pszServerName = NULL; 

   DWORD bz;

   NetApiBufferSize((LPBYTE *)&pTmpBuf,&bz);        
   NetApiBufferAllocate(bz,(void* *)&pTmpBuf);	    

   nStatus = NetServerEnum(NULL,
   dwLevel,
   (LPBYTE *)&pBuf,
   dwPrefMaxLen,
   &dwEntriesRead,
   &dwTotalEntries,
   dwServerType,
   NULL,
   &dwResumeHandle);

   if ((nStatus == NERR_Success) || (nStatus == ERROR_MORE_DATA))
   {
      if ((pTmpBuf = pBuf) != NULL)
      {
         TotalCount=0; 
         for(i = 0; i < dwEntriesRead; i++)
         {
            if (pTmpBuf == NULL)
            {
              TotalCount=-1;     // ошибка доступа
               break;
            }

            buff=(wchar_t *)pTmpBuf->sv101_name;
            cc=WideCharToMultiByte(CP_ACP,0,buff,-1,szBuf,0,NULL,NULL);
            WideCharToMultiByte(CP_ACP,0,buff,-1,szBuf,cc,NULL,NULL);
            sprintf(mbuf,"%-40.40s",szBuf);  mbuf[40]=0;
            strcat(tbuf,mbuf);
            pTmpBuf++;
            TotalCount++;
         }
         if (nStatus == ERROR_MORE_DATA)
           result=TotalCount;
      }
   }
   else
      result=-1;     // ошибка доступа
   if (pBuf != NULL)
      NetApiBufferFree(pBuf);    
...
Рейтинг: 0 / 0
03.08.2021, 21:59
    #40088419
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
d7i
Power++
А что это за зверь, подскажите, пожалуйста.
Гуглится что-то не то...
...
Рейтинг: 0 / 0
03.08.2021, 23:10
    #40088438
d7i
d7i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
miksoft
d7i
Power++
А что это за зверь, подскажите, пожалуйста.
Гуглится что-то не то...

А это очень старая IDE C++ (бывшая Optima++) 90-х годов (развитие и поддержка прекращены в 1999 году).
У истоков - Watcom (там даже их компилятор остался), потом Powersoft, потом SyBase, которая всё и угробила,
занявшись своим билдером...
Для Windows 32-bit - одна из лучших IDE С++. Работает у меня по сей день, всё собирает легко, всё работает без
ошибок (начиная с Windows 95 и до Windows 10 включительно). Никаких сторонних "компонент", большинство функций
похоже просто обертка над Windows API, которое можно использовать и напрямую (что и видно в указанном примере).
Естественно, поддерживает только старые стандарты, так что без особых "вывертов".
Конечно ООП, отличный Help и отладчик. Жаль, что проект угробили, был бы мощнейший конкурент Микрософту...
Вот старая краткая аннотация продукта https://www.osp.ru/cw/1997/21/20806
...
Рейтинг: 0 / 0
03.08.2021, 23:53
    #40088447
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
d7i
это очень старая IDE C++ (бывшая Optima++)
Я это нагуглил, но не решился поверить :)
1997 год все-таки...
...
Рейтинг: 0 / 0
04.08.2021, 12:43
    #40088574
d7i
d7i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
miksoft
d7i
это очень старая IDE C++ (бывшая Optima++)
Я это нагуглил, но не решился поверить :)
1997 год все-таки...

Однако нормально работает до сих пор.
Основа - Watcom, в то время там была очень сильная команда настоящих профессионалов.
...
Рейтинг: 0 / 0
04.08.2021, 14:11
    #40088607
old_joy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
d7i
miksoft
пропущено...
Я это нагуглил, но не решился поверить :)
1997 год все-таки...

Однако нормально работает до сих пор.
Основа - Watcom, в то время там была очень сильная команда настоящих профессионалов.

Watcom была частью QNX - ОС РВ, которую создали для самолета F18 в 1984 году. Потом сняли гриф секретности, но профи остались.
...
Рейтинг: 0 / 0
05.08.2021, 22:58
    #40089031
masterwin113
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
По долгой паузе я так понял что сканировать сеть на Delphi не возможно.
Или это гос. тайна))
...
Рейтинг: 0 / 0
06.08.2021, 00:55
    #40089049
d7i
d7i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
masterwin113
По долгой паузе я так понял что сканировать сеть на Delphi не возможно.
Или это гос. тайна))

Я привел кусок работающего кода через Win API (пусть на Си).
Неужели в Delphi невозможно использовать Win API?
Врядли кто-то Вам выложит готовый код на Delphi, надо немного поработать самому.
Вся работа состоит из 2-х этапов.
Первый этап: получение списка имен всех компьютеров. Код см. раннее.
Функция NetServerEnum вроде бы подразумевает только сервера, но на самом деле есть параметр
DWORD dwServerType = SV_TYPE_SERVER; // список серверов
DWORD dwServerType = 0xffffffff; // список всего

Так вот "список всего" (0xffffffff) выдаст действительно всё...
Таким образом Вы получите список имен.
Второй этап: получение по этому списку IP.
Кусок кода (опять Си !!!) привожу:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
   char *Buf = имя компьютера из списка имен;
   WSADATA WSAData;
   WSAStartup(MAKEWORD(2,2), &WSAData);
   char result[40];  // результат - IP в формате ххх.ххх.ххх.ххх
   char dot[6];
   u_long *ppIpNO;
   u_long *pIpNO;
   HOSTENT FAR *lphostent;
   u_long ipHO; 
   unsigned char binIp[4];

   result[0]=0;
   lphostent = gethostbyname(Buf);
   if (lphostent == NULL)
     result[0]=0;
   ppIpNO = (u_long *)lphostent->h_addr_list;
   if (ppIpNO == NULL)
     result[0]=0;
   pIpNO = ((u_long *)*(ppIpNO));
   if (pIpNO == NULL)
     result[0]=0;

    ipHO = ntohl(*pIpNO);

    binIp[0] = (BYTE)((ipHO & 0xff000000) >> 24);
    itoa(binIp[0], dot, 10);
    strcat(result,dot);
    binIp[1] = (BYTE)((ipHO & 0x00ff0000) >> 16);
    itoa(binIp[1], dot, 10);
    strcat(result, "."); strcat(result, dot);
    binIp[2] = (BYTE)((ipHO & 0x0000ff00) >> 8);
    itoa(binIp[2], dot, 10);
    strcat(result, "."); strcat(result, dot);
    binIp[3] = (BYTE)(ipHO & 0x000000ff);
    itoa(binIp[3], dot, 10);
    strcat(result,"."); strcat(result, dot);

    WSACleanup();


Как-то так. Всё это работает. Ну, не очень просто, работа с сетью вообще не очень простая...
...
Рейтинг: 0 / 0
06.08.2021, 02:31
    #40089056
masterwin113
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
Есть такие сканеры как wireless network watcher и advanced ip scanner. Как эти программы сканируют сеть? Какими api функции используются?
...
Рейтинг: 0 / 0
06.08.2021, 04:03
    #40089058
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
masterwin113
Есть такие сканеры как wireless network watcher и advanced ip scanner. Как эти программы сканируют сеть? Какими api функции используются?
Возьми да посмотри. Или хочешь чтоб кто-то за тебя это делал?
...
Рейтинг: 0 / 0
06.08.2021, 19:08
    #40089261
d7i
d7i
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скан ИП адресов локальной сети
masterwin113
Есть такие сканеры как wireless network watcher и advanced ip scanner. Как эти программы сканируют сеть? Какими api функции используются?

Кто их знает. Но повторяю в который уже раз - вот две главные функции API по теме:

NetServerEnum - список имен объектов в сети
gethostbyname - IP объекта (и другие данные) по имени

https://docs.microsoft.com/en-us/windows/win32/api/lmserver/nf-lmserver-netserverenum
https://docs.microsoft.com/en-us/windows/win32/api/winsock/nf-winsock-gethostbyname

Всё это реально работает, проверено и используется.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Скан ИП адресов локальной сети / 25 сообщений из 26, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]