powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Скан ИП адресов локальной сети
25 сообщений из 26, страница 1 из 2
Скан ИП адресов локальной сети
    #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
Скан ИП адресов локальной сети
    #40087921
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где инициализация EntrReq и SizeReq?

Про удаление x я молчу
...
Рейтинг: 0 / 0
Скан ИП адресов локальной сети
    #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
Скан ИП адресов локальной сети
    #40087935
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
SizeReq := SizeOf(x^);
...
Рейтинг: 0 / 0
Скан ИП адресов локальной сети
    #40087942
masterwin113
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое добрый человек.
Я не знаю как иначе вас поблагодарить на этом сайте.
Я бы все плюсики поставил вам.
Я уже неделю гуглю.
...
Рейтинг: 0 / 0
Скан ИП адресов локальной сети
    #40087951
masterwin113
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рано порадовался.
Я получаю только три строки

Microsoft Terminal Services
Microsoft Windows Network
Web Client Network

Как получить список компьютеров?
...
Рейтинг: 0 / 0
Скан ИП адресов локальной сети
    #40087952
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Скан ИП адресов локальной сети
    #40087957
masterwin113
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я все это перепробовал.
Все примеры показывают эти три строчки.
Если больше вариантов нет, пойду напьюсь))
...
Рейтинг: 0 / 0
Скан ИП адресов локальной сети
    #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
Скан ИП адресов локальной сети
    #40087965
masterwin113
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может процедуре WNetOpenEnum неправильные параметры передаю?
...
Рейтинг: 0 / 0
Скан ИП адресов локальной сети
    #40088088
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я использовал https://docs.microsoft.com/en-us/windows/win32/api/lmserver/nf-lmserver-netserverenum
(правда на Си, но это непринципиально) и всё прекрасно работает. Только надо не забыть перекодировать данные
в ANSI и сделать разбор IP в формат ХХХ.ХХХ.ХХХ.ХХХ.
...
Рейтинг: 0 / 0
Скан ИП адресов локальной сети
    #40088367
masterwin113
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запустил этот код на Visual C++. На выходе ошибка
NetServerEnum failed with error: 6118
(
...
Рейтинг: 0 / 0
Скан ИП адресов локальной сети
    #40088370
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
Скан ИП адресов локальной сети
    #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
Скан ИП адресов локальной сети
    #40088389
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
Скан ИП адресов локальной сети
    #40088419
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7i
Power++
А что это за зверь, подскажите, пожалуйста.
Гуглится что-то не то...
...
Рейтинг: 0 / 0
Скан ИП адресов локальной сети
    #40088438
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
Скан ИП адресов локальной сети
    #40088447
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7i
это очень старая IDE C++ (бывшая Optima++)
Я это нагуглил, но не решился поверить :)
1997 год все-таки...
...
Рейтинг: 0 / 0
Скан ИП адресов локальной сети
    #40088574
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft
d7i
это очень старая IDE C++ (бывшая Optima++)
Я это нагуглил, но не решился поверить :)
1997 год все-таки...

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

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

Watcom была частью QNX - ОС РВ, которую создали для самолета F18 в 1984 году. Потом сняли гриф секретности, но профи остались.
...
Рейтинг: 0 / 0
Скан ИП адресов локальной сети
    #40089031
masterwin113
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По долгой паузе я так понял что сканировать сеть на Delphi не возможно.
Или это гос. тайна))
...
Рейтинг: 0 / 0
Скан ИП адресов локальной сети
    #40089049
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
Скан ИП адресов локальной сети
    #40089056
masterwin113
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такие сканеры как wireless network watcher и advanced ip scanner. Как эти программы сканируют сеть? Какими api функции используются?
...
Рейтинг: 0 / 0
Скан ИП адресов локальной сети
    #40089058
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
masterwin113
Есть такие сканеры как wireless network watcher и advanced ip scanner. Как эти программы сканируют сеть? Какими api функции используются?
Возьми да посмотри. Или хочешь чтоб кто-то за тебя это делал?
...
Рейтинг: 0 / 0
Скан ИП адресов локальной сети
    #40089261
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
25 сообщений из 26, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Скан ИП адресов локальной сети
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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