Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Получение локальных IP-адресов в Delphi: методы и примеры кода

Delphi , ОС и Железо , Windows

Получение локальных IP-адресов в Delphi

Для получения списка локальных IP-адресов в программировании на Delphi можно использовать разные подходы. Ниже приведены примеры, которые помогут вам решить эту задачу.

Использование компонентов Indy

Если вы используете Indy для работы со сокетами, можно воспользоваться функцией LocalIPList, которая определена в модуле OverbyteIcsWSocket. Даже если вы не используете Indy, вы можете скачать исходный код и изучить реализацию этой функции.

В Indy 9 и Indy 10 существует класс TIdStack, который предоставляет методы для работы с локальными адресами. Пример использования:

var
  fStack: TIdStack;
begin
  fStack := TIdStack.Create;
  try
    // Получаем первый локальный адрес
    Edit1.Caption := fStack.LocalAddress;
    // Добавляем все локальные адреса в ComboBox
    ComboBox1.Items.Assign(fStack.LocalAddresses);
  finally
    FreeAndNil(fStack);
  end;
end;

Также в Indy 10 есть статический метод GStack.AddLocalAddressesToList, который можно использовать для заполнения списка локальных адресов:

TIdStack.IncUsage;
try
  GStack.AddLocalAddressesToList(ComboBox1.Items);
  Edit1.Caption := ComboBox1.Items[0];
finally
  TIdStack.DecUsage;
end;

Использование WinAPI

Можно также использовать WinAPI для перечисления локальных IP-адресов. Вот пример функции, которая делает это:

function EnumerateIpAddresses(var IPList: TStringList): Boolean;
var
  IPAddrTable: PMIB_IPADDRTABLE;
  Size: DWORD;
  Res: DWORD;
  Index: Integer;
  Addr: IN_ADDR;
begin
  Result := False;
  // ... (код для получения списка IP-адресов)
end;

Этот код требует использования заголовочных файлов из библиотеки Jedi ApiLib.

Использование компонентов JclSysInfo

В библиотеке Jedi Code Library имеется процедура GetIpAddresses, которая может быть использована для получения списка локальных IP-адресов:

procedure GetIpAddresses(Results: TStrings);
begin
  // ... (использование TStrings для хранения списка IP)
end;

Заключение

Выбор метода зависит от конкретных требований вашего проекта и используемых компонентов. Indy предоставляет удобные инструменты для работы со сокетами и сетевыми операциями, включая получение локальных IP-адресов. WinAPI и Jedi Code Library также предлагают возможности для решения этой задачи.

Создано по материалам из источника по ссылке.

В контексте обсуждаются различные методы получения списка локальных IP-адресов в программировании на Delphi, включая использование компонентов Indy, WinAPI и JclSysInfo.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Windows ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 17:35:31/0.0031981468200684/0