Показать полную графическую версию : [решено] Как показать IP адрес локальной сети на Lazarus
PlanktoN
18-08-2015, 12:30
Нужно чтобы при нажатии кнопки т.е Button Показывался текущий IP адрес на label. Но откуда взять текущий IP адрес?? Нужен скрипт
Оттуда же, где он берётся и без Lazarus. На выбор: разбор stdout «ipconfig.exe», Wbem (WMI Tasks: Networking (Windows) (https://msdn.microsoft.com/en-us/library/aa394595(v=vs.85).aspx)), WinAPI.
PlanktoN
18-08-2015, 15:48
"Нужен скрипт"
"Нужен скрипт" »
Так берите по приведённой ссылке. В чём проблема?
uses ..... Process;
function GetIpAddrList(): string;
var
AProcess: TProcess;
s: string;
sl: TStringList;
i, n: integer;
begin
Result:='';
sl:=TStringList.Create();
{$IFDEF WINDOWS}
AProcess:=TProcess.Create(nil);
AProcess.CommandLine := 'ipconfig.exe';
AProcess.Options := AProcess.Options + [poUsePipes, poNoConsole];
try
AProcess.Execute();
Sleep(500); // poWaitOnExit don't work as expected
sl.LoadFromStream(AProcess.Output);
finally
AProcess.Free();
end;
for i:=0 to sl.Count-1 do
begin
if (Pos('IPv4', sl[i])=0) and (Pos('IP-', sl[i])=0) and (Pos('IP Address', sl[i])=0) then Continue;
s:=sl[i];
s:=Trim(Copy(s, Pos(':', s)+1, 999));
if Pos(':', s)>0 then Continue; // IPv6
Result:=Result+s+' ';
end;
{$ENDIF}
{$IFDEF UNIX}
AProcess:=TProcess.Create(nil);
AProcess.CommandLine := '/sbin/ifconfig';
AProcess.Options := AProcess.Options + [poUsePipes, poWaitOnExit];
try
AProcess.Execute();
sl.LoadFromStream(AProcess.Output);
finally
AProcess.Free();
end;
for i:=0 to sl.Count-1 do
begin
n:=Pos('inet addr:', sl[i]);
if n=0 then Continue;
s:=sl[i];
s:=Copy(s, n+Length('inet addr:'), 999);
Result:=Result+Trim(Copy(s, 1, Pos(' ', s)))+' ';
end;
{$ENDIF}
sl.Free();
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
label1.Caption:=GetIpAddrList;
end;
Нашел источник - http://forum.lazarus.freepascal.org/index.php/topic,4519.msg177771.html#msg177771
или использовать дополнительные библиотеки, компоненты.
opel431, так это ж не скрипт… Или автор «скриптом» исходный программный код обзывает?!
так это ж не скрипт… »
У отправившего SOS, это скрипт...
Нужно чтобы при нажатии кнопки т.е Button Показывался текущий IP адрес на label. Но откуда взять текущий IP адрес?? Нужен скрипт »
У отправившего SOS, это скрипт... »
Да, наверняка так оно и есть :).
PlanktoN
19-08-2015, 12:21
Нужен код т.е на Lazarus. Язык программирования Free Pascal
Нужен код т.е на Lazarus. Язык программирования Free Pascal »
Ну, так коллега opel431 его и привёл выше (http://forum.oszone.net/post-2543155.html#post2543155), причём для двух платформ.
PlanktoN
19-08-2015, 20:37
а короче есть или только это?
а короче есть или только это? »
А короче, Iska Вам уже предложил - https://theroadtodelphi.wordpress.com/wmi-delphi-code-creator/ (Open the generated Free Pascal code directly in the Lazarus IDE)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.