Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.12.30;
Скачать: [xml.tar.bz2];

Вниз

получить локальный 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.008 c
5-1164714160
Hollander
2006-11-28 14:42
2007.12.30
Проблема с SelAttributes


2-1196895020
Malik
2007-12-06 01:50
2007.12.30
IncludeTrailingBackslash


15-1196393774
Lebedev
2007-11-30 06:36
2007.12.30
Если писать программу для Windows 98?


15-1196074479
No_Dead
2007-11-26 13:54
2007.12.30
Логика БД


2-1197007613
Dariusz
2007-12-07 09:06
2007.12.30
Указатель в таблице после удаления записи





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский