Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.30;
Скачать: CL | DM;

Вниз

получить локальный IP-адрес компьютера   Найти похожие ветки 

 
Егоров А.Н.   (2007-12-04 14:20) [0]

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


 
Anatoly Podgoretsky ©   (2007-12-04 14:24) [1]

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

127.0.0.1


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

gethostbyname()


 
Eraser ©   (2007-12-04 14:48) [3]

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


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

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


 
clickmaker ©   (2007-12-04 15:19) [5]


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

поиск по Delphi/Source


 
Dennis I. Komarov ©   (2007-12-04 15:35) [6]

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

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


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

> clickmaker

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


 
Desdechado ©   (2007-12-04 15:50) [8]

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


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

> Desdechado

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


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


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


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

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


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

Все. Нарыл на <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;

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


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

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


 
Desdechado ©   (2007-12-05 11:56) [13]

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



Страницы: 1 вся ветка

Текущий архив: 2007.12.30;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
2-1196684220
GitaROMAN
2007-12-03 15:17
2007.12.30
Delphy с самого самого начала. Как разобраться Чо мутить...


2-1196930572
LerMax
2007-12-06 11:42
2007.12.30
Вопрос про ссылку в классе


3-1187186976
greg123
2007-08-15 18:09
2007.12.30
Использование хранимых процедур в MS SQL SERVER 2000


2-1197006707
Свой
2007-12-07 08:51
2007.12.30
TQuery ответ и регистр букв


2-1196959438
Dib@zol
2007-12-06 19:43
2007.12.30
Работа с делфяными строками на билт-ин асме