Узнать свой внутренний (частный) IP компьютера, можно воспользовавшись следующим способом:
1) Создаем новый проект и кидаем на форму кнопку.
2) В раздел Uses листинга добавляем WinSock, а в разделе private пропишем функцию, function GetLocalIP: String; которая будет извлекать наш внутренний IP.
3) Выделяем нашу функцию, жмем Ctrl+Shift+C и в созданном шаблоне описываем ее следующим образом:
function TForm1.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;
4) Вызывать данную функцию будем нажатием кнопки Button:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(GetLocalIP);
end;
Данный код взят очень давно с какого то из форумов и работает великолепно по сей день.
1) Создаем новый проект и кидаем на форму кнопку.
2) В раздел Uses листинга добавляем WinSock, а в разделе private пропишем функцию, function GetLocalIP: String; которая будет извлекать наш внутренний IP.
3) Выделяем нашу функцию, жмем Ctrl+Shift+C и в созданном шаблоне описываем ее следующим образом:
function TForm1.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;
4) Вызывать данную функцию будем нажатием кнопки Button:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(GetLocalIP);
end;
Данный код взят очень давно с какого то из форумов и работает великолепно по сей день.
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.