Извлечь адреса сетевых картDelphi , Интернет и Сети , СетьИзвлечь адреса сетевых карт
Оформил: DeeCo {for NT4 and Windows 2000, and you must have Admin privileges} {fьr NT4 und Windows 2000, und Adminrechte erforderlich} uses Registry; const nString = 'SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\NetworkCards'; nEthernet = 'Ethernet'; nEtherjet = 'Etherjet'; {if Hardware IBM PL300 with Chip 10/100} nTcpIp1 = 'SYSTEM\CurrentControlSet\Services\'; nTcpIp2 = '\Parameters\Tcpip'; var reg: TRegistry; buffer1, buffer2, buffer3: array [1..32] of Char; i: Integer; ipaddress, subnetmask, DefaultGateway: string; Adapter, Adapter_Key: string; stringlist: TStrings; function search_adapter_key: string; var astring, description, st: string; nPos: integer; ServiceName: string; begin reg := TRegistry.Create; stringlist := TStringList.Create; reg.RootKey := HKEY_LOCAL_MACHINE; reg.OpenKey(nString, False); reg.GetKeyNames(stringlist); {search all subkeys such alle unterschlьssel} reg.CloseKey; for i := 0 to (stringlist.Count - 1) do begin st := stringlist[i]; aString := nString + '\' + st; reg := TRegistry.Create; reg.RootKey := HKEY_LOCAL_MACHINE; reg.OpenKey(aString, False); description := reg.ReadString('Description'); nPos:= AnsiPos(nEthernet, description); {search description for string Ethernet Beschreibung nach dem string Ethernet absuchen} if nPos > 0 then begin ServiceName := reg.ReadString('ServiceName'); Adapter_Key := nTcpIp1 + ServiceName + nTcpIp2; end; nPos := AnsiPos(nEtherjet, description); {search description for string 'Etherjet if IBM PL300 with MotherboardChip} if nPos > 0 then begin ServiceName := reg.ReadString('ServiceName'); Adapter_Key := nTcpIp1 + ServiceName + nTcpIp2; end; reg.CloseKey; end; Result := Adapter_Key; end; procedure search_for_adapter_NT; var BufSize: Integer; {Bufsize requested but not used Bufsize erforderlich aber nicht benutzt} begin adapter := search_adapter_key; if adapter <> '' then begin Reg := TRegistry.Create; try Reg.RootKey := HKEY_LOCAL_MACHINE; Reg.OpenKey(adapter, False); Reg.ReadBinaryData('IpAddress', buffer1, BufSize); finally Reg.CloseKey; Reg.Free; end; Reg := TRegistry.Create; try Reg.RootKey := HKEY_LOCAL_MACHINE; Reg.OpenKey(adapter, False); Reg.ReadBinaryData('SubnetMask', buffer2, BufSize); finally Reg.CloseKey; Reg.Free; end; Reg := TRegistry.Create; try Reg.RootKey := HKEY_LOCAL_MACHINE; Reg.OpenKey(adapter, False); Reg.ReadBinaryData('DefaultGateway', buffer3, BufSize); finally Reg.CloseKey; Reg.Free; end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Clear; search_for_adapter_NT; Memo1.Lines.Add(buffer1); Memo1.Lines.Add(buffer2); Memo1.Lines.Add(buffer3); end; Программа на Delphi, которая извлекает адрес IP, маску подсети и шлюз по умолчанию для адаптеров сети на системе Windows. Программа использует реестр Windows для чтения этих значений. Вот разбивка кода:
Программа использует следующие константы:
Программа использует следующие переменные:
Программа использует следующие процедуры:
Обратите внимание, что эта программа требует административных прав и работает только на системах Windows NT4 и Windows 2000. Извлечь адреса сетевых карт: программа на языке Delphi, которая извлекает и выводит информацию о сетевых адаптерах в системе Windows NT4 и Windows 2000. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |