Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2011, 14:25   #1
xpams
Пользователь
 
Регистрация: 16.09.2011
Сообщений: 43
По умолчанию КАК узнать IP компьютера в СЕТИ???

КАК узнать IP компьютера в СЕТИ програмным способом???
xpams вне форума Ответить с цитированием
Старый 30.11.2011, 15:45   #2
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

попробуй этот вариант:
Код:
function GetLocalHostAddress: string;
var
  SockAddrIn: TSockAddrIn;
  HostEnt: PHostEnt;
  szHostName: array[0..128] of char;
begin
  if gethostname(szHostName, 128) = 0 then
    begin
      HostEnt:= gethostbyname(szHostName);
      if HostEnt = nil then
        Result:= ''
      else
        begin
          SockAddrIn.sin_addr.S_addr:= longint(plongint(HostEnt^.h_addr_list^)^);
          Result:= inet_ntoa(SockAddrIn.sin_addr);
        end;
    end
  else
    { Error handle } ;
end;
или этот:
Код:
Host: TLabel;
IPaddr: TLabel;
...
uses Winsock;
...

procedure TForm1.FormCreate(Sender: TObject);
var
  wVerReq: WORD;
  wsaData: TWSAData;
  i: pchar;
  h: PHostEnt;
  c: array[0..128] of char;
begin
  wVerReq := MAKEWORD(1, 1);
  WSAStartup(wVerReq, wsaData);
  {Получаем хост (имя) компа}
  GetHostName(@c, 128);
  h := GetHostByName(@c);
  Host.Caption := h^.h_Name; //Host отображает хост(имя) компьютера
  {Достаем IP}
  i := iNet_ntoa(PInAddr(h^.h_addr_list^)^);
  IPaddr.Caption := i; //Теперь IPaddr отображает IP-адрес
  WSACleanup;
end;

Последний раз редактировалось beegl; 30.11.2011 в 15:48. Причина: добавил код
beegl вне форума Ответить с цитированием
Старый 01.12.2011, 03:35   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Внешний (DSL) и внутренний (LAN) IP адрес

Используется компонент IdIPWatch закладка Indy
Код:
ShowMessage(Form1.IdIPWatch1.CurrentIP); //инетовский
ShowMessage(Form1.IdIPWatch1.LocalIP); //лановский
mihali4 вне форума Ответить с цитированием
Старый 01.12.2011, 11:17   #4
leonw
Пользователь
 
Регистрация: 08.08.2008
Сообщений: 39
Сообщение IP

держи еще:
Код:
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;
leonw вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать все IP-адреса компьютера. Proger10 Работа с сетью в Delphi 8 19.02.2012 00:14
Как узнать имя программ активных в сети Aliens_wolfs Работа с сетью в Delphi 7 15.08.2011 10:13
как узнать включен ли комп в локальной сети Monster Работа с сетью в Delphi 17 27.08.2010 16:41
Отключение компьютера от всемирной сети... W0LF Общие вопросы Delphi 2 01.12.2009 20:28
Как определить IP-адресс компьютера в локальной сети? SalasAndriy C/C++ Сетевое программирование 2 29.11.2007 02:09