Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];

Вниз

как узнать все IP в локальной сети   Найти похожие ветки 

 
doktor ©   (2005-04-05 10:44) [0]

как узнать айпишники в локальной сети


 
Rouse_ ©   (2005-04-05 11:31) [1]

Все все?
Ну смотри:
Сеть 192.168.24.0 маска 255.255.255.0 Все апишники это

192.168.24.1
192.168.24.2
192.168.24.3
...
192.168.24.253
192.168.24.254
192.168.24.255


 
Eraser ©   (2005-04-05 21:19) [2]

doktor ©

unit alxUSock;

interface

uses Windows, Winsock;

{

 Åñëè Âû ïîìåñòèòå ñòðîêó ðåçóëüòàòîâ â wide TMEMO (â åãî ñâîéñòâî memo.lines.text)
 òî íèêàêèõ ðåçóëüòàòîâ íå óâèäèòå.

 Òåñòèðîâàëîñü íà Win98/ME/2K, 95 OSR 2 è NT service
 pack #3 , ïîòîìó ÷òî èñïîëüçóåòñÿ WinSock 2 (WS2_32.DLL)

}

function EnumInterfaces(var sInt: string): Boolean;

{ ôóíêöèÿ WSAIOCtl èìïîðòèðóåòñÿ èç Winsock 2.0 - Winsock 2 äîñòóïåí }
{ òîëüêî â Win98/ME/2K è 95 OSR2, NT srv pack #3 }

function WSAIoctl(s: TSocket; cmd: DWORD; lpInBuffer: PCHAR; dwInBufferLen:
 DWORD;
 lpOutBuffer: PCHAR; dwOutBufferLen: DWORD;
 lpdwOutBytesReturned: LPDWORD;
 lpOverLapped: POINTER;
 lpOverLappedRoutine: POINTER): Integer; stdcall; external "WS2_32.DLL";

{ Êîíñòàíòû âçÿòûå èç çàãîëîâêà C ôàéëîâ }

const SIO_GET_INTERFACE_LIST = $4004747F;
 IFF_UP = $00000001;
 IFF_BROADCAST = $00000002;
 IFF_LOOPBACK = $00000004;
 IFF_POINTTOPOINT = $00000008;
 IFF_MULTICAST = $00000010;

type sockaddr_gen = packed record
   AddressIn: sockaddr_in;
   filler: packed array[0..7] of char;
 end;

type INTERFACE_INFO = packed record
   iiFlags: u_long; // Ôëàãè èíòåðôåéñà
   iiAddress: sockaddr_gen; // Àäðåñ èíòåðôåéñà
   iiBroadcastAddress: sockaddr_gen; // Broadcast àäðåñ
   iiNetmask: sockaddr_gen; // Ìàñêà ïîäñåòè
 end;

implementation

{-------------------------------------------------------------------

1. Îòêðûâàåì WINSOCK
2. Ñîçäà¸ì ñîêåò
3. Âûçûâàåì WSAIOCtl äëÿ äîñòóïà ê ñåòåâûì èíòåðôåéñàì
4. Äëÿ êàæäîãî èíòåðôåéñà, ïîëó÷àåì IP, MASK, BROADCAST, ñòàòóñ
5. Ðàçäåëÿåì ñòðîêó ñèìâîëîì CRLF  
6. Êîíåö :)

--------------------------------------------------------------------}

function EnumInterfaces(var sInt: string): Boolean;
var s: TSocket;
 wsaD: WSADATA;
 NumInterfaces: Integer;
 BytesReturned, SetFlags: u_long;
 pAddrInet: SOCKADDR_IN;
 pAddrString: PCHAR;
 PtrA: pointer;
 Buffer: array[0..20] of INTERFACE_INFO;
 i: Integer;
begin
 result := true;                                // Èíèöèàëèçèðóåì ïåðåìåííóþ
 sInt := "";

 WSAStartup($0101, wsaD);                      // Çàïóñêàåì WinSock
                                               // Çäåñü ìîæíî äàáàâèòü ðàçëè÷íûå îáðàáîò÷èêè îøèáêè :)

 s := Socket(AF_INET, SOCK_STREAM, 0);          // Îòêðûâàåì ñîêåò
 if (s = INVALID_SOCKET) then exit;

 try                                            // Âûçûâàåì WSAIoCtl
   PtrA := @bytesReturned;
   if (WSAIoCtl(s, SIO_GET_INTERFACE_LIST, nil, 0, @Buffer, 1024, PtrA, nil,
     nil)
     <> SOCKET_ERROR)
     then
   begin                                        // &#197;&#241;&#235;&#232; OK, &#242;&#238; &#238;&#239;&#240;&#229;&#228;&#229;&#235;&#255;&#229;&#236; &#234;&#238;&#235;&#232;&#247;&#229;&#241;&#242;&#226;&#238; &#241;&#243;&#249;&#229;&#241;&#242;&#226;&#243;&#254;&#249;&#232;&#245; &#232;&#237;&#242;&#229;&#240;&#244;&#229;&#233;&#241;&#238;&#226;

     NumInterfaces := BytesReturned div SizeOf(INTERFACE_INFO);

     for i := 0 to NumInterfaces-1 do        // &#196;&#235;&#255; &#234;&#224;&#230;&#228;&#238;&#227;&#238; &#232;&#237;&#242;&#229;&#240;&#244;&#229;&#233;&#241;&#224;
     begin
       pAddrInet := Buffer[i].iiAddress.addressIn;            // IP &#224;&#228;&#240;&#229;&#241;
       pAddrString := inet_ntoa(pAddrInet.sin_addr);
       sInt:=sInt+pAddrString;
       if i=NumInterfaces-1 then
         sInt := sInt
       else
         sInt := sInt + #13#10;
       // CRLF &#236;&#229;&#230;&#228;&#243; &#234;&#224;&#230;&#228;&#251;&#236; &#232;&#237;&#242;&#229;&#240;&#244;&#229;&#233;&#241;&#238;&#236;
     end;
   end;
 except
 end;
//
// &#199;&#224;&#234;&#240;&#251;&#226;&#224;&#229;&#236; &#241;&#238;&#234;&#229;&#242;&#251;
//
 CloseSocket(s);
 WSACleanUp;
 result := false;
end;

end.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.042 c
11-1101196866
mdw
2004-11-23 11:01
2005.07.11
Нужен KOLICS


1-1118624422
ProGamer
2005-06-13 05:00
2005.07.11
Скопировать файл в буфер обмена


14-1118384279
вразлет
2005-06-10 10:17
2005.07.11
Общая теория революции, или Апология Луки


5-1089604674
Maxim
2004-07-12 07:57
2005.07.11
статьи по ActivX


1-1119451337
Peter_cc
2005-06-22 18:42
2005.07.11
Баг в CoolTray





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский