Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

получить локальный IP-адрес компьютера [D7, WinXP]


Егоров А.Н. ©   (2007-12-04 14:20:00) 

Господа мастера, подскажите пожалуйста, как мне получить локальный IP-адрес на самой клиентской машине.


Desdechado   (2007-12-05 11:56:00) [1]

> У машины может быть 2 сетевые карточки.
А также модемы и прочая в количестве N экземпляров.
Помню, на заре моего программизма на IB при попытке соединения по IP вечно у клиентов вылазил контроллер удаленного доступа с запросом на пароль к соединению по модему.


Ega23   (2007-12-05 11:32:00) [2]

У машины может быть 2 сетевые карточки.


Егоров А.Н.   (2007-12-05 11:27:00) [3]

Все. Нарыл на < http://www.cracklab.ru/pro/faq.php?pg=2100&ln=50>

uses
  WinSock;

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;

Работает отлично. Вы все мне очень помогли. Спасибо. Отбой.


Eraser   (2007-12-04 16:10:00) [4]


> Егоров А.Н.   (04.12.07 16:07) [9]


> поэтому и адрес у него единственный.

не единственный, есть, как минимум, еще один - loopback.
на сервере сколько сетевых карт?


Егоров А.Н.   (2007-12-04 16:07:00) [5]

> Desdechado

В данном случае есть сервер со своим IP (например: 198.188.0.100) и есть штук сорок компьютеров со своими статическими IP (например: 198.188.0.1, 198.188.0.2, 198.188.0.3 и т.п.). Каждый компьютер сети имеет только одно подключение по локальной сети по протоколу TCP/IP, поэтому и адрес у него единственный.


Desdechado   (2007-12-04 15:50:00) [6]

IP есть у сетевого интервейса, если он поддерживает этот протокол.
А сетевых интерфейсов может быть 0..N


Егоров А.Н.   (2007-12-04 15:47:00) [7]

> clickmaker

Все перерыл - не нашел, но копаю. Если кто знает, подскажите.


Dennis I. Komarov   (2007-12-04 15:35:00) [8]

"Опять икра..." (С)

Сколько раз тут говорили: у машины нет IP


clickmaker   (2007-12-04 15:19:00) [9]


> [4] Егоров А.Н.   (04.12.07 14:58)

поиск по Delphi/Source


Егоров А.Н.   (2007-12-04 14:58:00) [10]

> clickmaker
 из какого USES эта функция - gethostbyname()


Eraser   (2007-12-04 14:48:00) [11]

http://www.delphikingdom.com/asp/answer.asp?IDAnswer=38758


clickmaker   (2007-12-04 14:45:00) [12]

gethostbyname()


Anatoly Podgoretsky   (2007-12-04 14:24:00) [13]

> Егоров А.Н.  (04.12.2007 14:20:00)  [0]

127.0.0.1


Наверх

Титульная страница Поиск, карта сайта Написать письмо