Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] Как показать IP адрес локальной сети на Lazarus

Ответить
Настройки темы
Разное - [решено] Как показать IP адрес локальной сети на Lazarus

Пользователь


Сообщения: 79
Благодарности: 6

Профиль | Отправить PM | Цитировать


Нужно чтобы при нажатии кнопки т.е Button Показывался текущий IP адрес на label. Но откуда взять текущий IP адрес?? Нужен скрипт

Отправлено: 12:30, 18-08-2015

 

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Оттуда же, где он берётся и без Lazarus. На выбор: разбор stdout «ipconfig.exe», Wbem (WMI Tasks: Networking (Windows)), WinAPI.

Отправлено: 14:39, 18-08-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 79
Благодарности: 6

Профиль | Отправить PM | Цитировать


"Нужен скрипт"

Отправлено: 15:48, 18-08-2015 | #3


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата PlanktoN:
"Нужен скрипт" »
Так берите по приведённой ссылке. В чём проблема?

Отправлено: 16:23, 18-08-2015 | #4


Аватара для opel431

Ветеран


Contributor


Сообщения: 1803
Благодарности: 714

Профиль | Отправить PM | Цитировать


Для первого совета от 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, 18-08-2015 в 21:53. Причина: Нашел источник

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:21, 18-08-2015 | #5


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


opel431, так это ж не скрипт… Или автор «скриптом» исходный программный код обзывает?!

Отправлено: 18:53, 18-08-2015 | #6


Аватара для opel431

Ветеран


Contributor


Сообщения: 1803
Благодарности: 714

Профиль | Отправить PM | Цитировать


Цитата Iska:
так это ж не скрипт… »
У отправившего SOS, это скрипт...
Цитата PlanktoN:
Нужно чтобы при нажатии кнопки т.е Button Показывался текущий IP адрес на label. Но откуда взять текущий IP адрес?? Нужен скрипт »

-------
Хвала тому, кто встав среди камней, уча другого, сам будет умней.


Отправлено: 18:59, 18-08-2015 | #7


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата opel431:
У отправившего SOS, это скрипт... »
Да, наверняка так оно и есть .

Отправлено: 19:17, 18-08-2015 | #8


Пользователь


Сообщения: 79
Благодарности: 6

Профиль | Отправить PM | Цитировать


Нужен код т.е на Lazarus. Язык программирования Free Pascal

Отправлено: 12:21, 19-08-2015 | #9


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата PlanktoN:
Нужен код т.е на Lazarus. Язык программирования Free Pascal »
Ну, так коллега opel431 его и привёл выше, причём для двух платформ.

Отправлено: 12:42, 19-08-2015 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] Как показать IP адрес локальной сети на Lazarus

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочее - Как узнать IP-адрес шлюза в WiFi сети зная только MAC-адрес AP navigator19 Сетевые технологии 4 16-03-2014 12:24
CMD/BAT - Помогите узнать текущий IP-адрес компьютера в локальной сети в скрипте NoIZz Скриптовые языки администрирования Windows 6 15-10-2013 22:16
Proxy/NAT - [решено] Подменить свой ip адрес на другой ip адрес (выдать свою организацию за другую) masyaka Сетевые технологии 5 25-03-2011 08:42
Печать - [решено] ПОМОГИТЕ! Как узнать кто использует мой IP адрес в сети? Zibit Сетевые технологии 9 29-12-2009 12:59
Разное - [решено] Как назначить сетевой плате ip-адрес класса С, если нет сети ? XPurple Microsoft Windows 2000/XP 2 23-07-2007 17:13




 
Переход