Главная страница
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.015 c
3-1188291869
parivet
2007-08-28 13:04
2007.12.30
TClientDataSet


11-1171253411
Ander
2007-02-12 07:10
2007.12.30
TKolComboBox и LoadFromFile


15-1196235035
студент
2007-11-28 10:30
2007.12.30
степени двоек


2-1196840983
Ekzot
2007-12-05 10:49
2007.12.30
Как Подсветать определённые слова в RichEdit


15-1195599977
begin_end
2007-11-21 02:06
2007.12.30
тут идея родилась такая