Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Как определить свой IP адрес

Delphi , Интернет и Сети , TCP/IP

Как определить свой IP адрес

По нику встречают, по IP провожают.


uses
  WinSock;

function GetLocalIP: String;
const WSVer = $101;
var
  wsaData: TWSAData;
  P: PHostEnt;
  Buf: array [0..127] of Char;
begin
  Result := '';
  if WSAStartup(WSVer, wsaData) = 0 then begin
    if GetHostName(@Buf, 128) = 0 then begin
      P := GetHostByName(@Buf);
      if P <> nil then Result := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
    end;
    WSACleanup;
  end;
end;


Here is the translation of the text into Russian:

Программа на языке Delphi для определения локального IP-адреса!

Код использует Windows Sockets (WinSock) API и функцию WSAStartup для инициализации библиотеки WinSock. Затем он использует GetHostName для получения имени хоста локальной машины, которое хранится в буфере. Функция GetHostByName используется для разрешения имени хоста на IP-адрес. Наконец, функция Inet_ntoa используется для конвертации IP-адреса из двоичной формы в строку.

Вот разбивка кода:

  1. WSVer := $101; - Устанавливает номер версии для инициализации WinSock.
  2. var wsaData: TWSAData; - Объявляет переменную для хранения данных инициализации WinSock.
  3. P: PHostEnt; - Объявляет указатель на структуру HOSTENT, которая будет содержать информацию о разрешенном имени хоста и IP-адресе.
  4. Buf: array [0..127] of Char; - Объявляет буфер для хранения имени хоста.
  5. Result := ''; - Инициализирует пустую строку для хранения результата IP-адреса.
  6. if WSAStartup(WSVer, wsaData) = 0 then begin - Инициализирует WinSock с помощью предоставленного номера версии и хранит результат в wsaData.
  7. if GetHostName(@Buf, 128) = 0 then begin - Разрешает имя хоста на строку и хранит ее в буфере.
  8. P := GetHostByName(@Buf); - Конвертирует строку имени хоста в IP-адрес с помощью разрешения DNS.
  9. if P <> nil then Result := iNet_ntoa(PInAddr(P^.h_addr_list^)^); - Конвертирует двоичный IP-адрес в строку с помощью Inet_ntoa и присваивает ее переменной Result.
  10. WSACleanup; - Очищает ресурсы WinSock.

Функция возвращает пустую строку, если любая из шагов инициализации или разрешения fails, иначе она возвращает локальный IP-адрес в виде строки.

Обратите внимание, что этот код использует встроенную поддержку WinSock Delphi и не требует дополнительных библиотек.

В статье рассматривается способ определения собственного IP-адреса на компьютере с помощью функции GetLocalIP, написанной на языке Delphi.


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


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



:: Главная :: TCP/IP ::


реклама



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

Время компиляции файла: 2024-05-19 17:53:24
2024-05-19 19:18:29/0.0071778297424316/2