Как показать IP адрес локальной сети на Lazarus
Нужно чтобы при нажатии кнопки т.е Button Показывался текущий IP адрес на label. Но откуда взять текущий IP адрес?? Нужен скрипт
|
Так берите по приведённой ссылке. В чём проблема?
|
Для первого совета от Iska, вот так
Код:
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, это скрипт...
Цитата:
Цитата PlanktoN
Нужно чтобы при нажатии кнопки т.е Button Показывался текущий IP адрес на label. Но откуда взять текущий IP адрес?? Нужен скрипт »
|
|
Цитата:
Цитата opel431
У отправившего SOS, это скрипт... »
|
Да, наверняка так оно и есть :).
|
Нужен код т.е на Lazarus. Язык программирования Free Pascal
|
Цитата:
Цитата PlanktoN
Нужен код т.е на Lazarus. Язык программирования Free Pascal »
|
Ну, так коллега opel431 его и привёл выше, причём для двух платформ.
|
а короче есть или только это?
|
Время: 03:39.
© OSzone.net 2001-