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

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

Как взять нужный IP? [D6, Win95/98, Win2k, WinXP]


Knight ©   (2004-11-27 11:24:00) 

Стоит две сетевые (одна LAN, вторая спутник) если делать по
http://delphimaster.ru/cgi-bin/faq.pl?look=1&id=988620992&n=20
берётся не тот... какой функцией можно найти все карты, для вывода диалога выбора нужной?


Knight   (2004-11-27 22:37:00) [1]


> [7] Anatoly Podgoretsky ©   (27.11.04 16:11)

Вот и смотрю, вроде list, а PChar без размера данных... Спасибо. Всё ок... :)


Anatoly Podgoretsky   (2004-11-27 16:11:00) [2]

Function LocalIP : string;
type
  TaPInAddr = array [0..10] of PInAddr;
  PaPInAddr = ^TaPInAddr;
var
  phe  : PHostEnt;
  pptr : PaPInAddr;
  Buffer : array [0..63] of char;
  I    : Integer;
  GInitData      : TWSADATA;

Begin
  WSAStartup($101, GInitData);
  Result := '';
  GetHostName(Buffer, SizeOf(Buffer));
  phe :=GetHostByName(buffer);
  if phe = nil then Exit;
  pptr := PaPInAddr(Phe^.h_addr_list);
//    Phe^.h_addr_list - должен содержать IPдля всех интерфейсов.
  I := 0;
  while pptr^[I] <> nil do begin
// приводим их по очерёдности к нормальному виду
    Result := Result + StrPas(inet_ntoa(pptr^[I]^)) + '#10#13' ;
    Inc(I);
  end;
  WSACleanup;
End;


Anatoly Podgoretsky   (2004-11-27 15:48:00) [3]

Да ты прав, я тоже проверил поиском в данном FAQ нет нормального примера, но это не проблема, ты сам сможешь его поправить.
p.h_addr_list^ это список ИП адресов, ты должен просто пройтись по нему в цикле, пока не встретишь пустую строку.


Knight   (2004-11-27 15:04:00) [4]

Касательно ипов только два... практически идентичных...

http://delphimaster.ru/cgi-bin/faq.pl?look=1&id=988620992&n=20
http://delphimaster.ru/cgi-bin/faq.pl?look=1&id=988622334&n=20


Anatoly Podgoretsky   (2004-11-27 14:51:00) [5]

В том же FAQ найдешь примеры не такие глупые, а которые берут все адреса, а не первый попавшийся.


Knight   (2004-11-27 14:48:00) [6]

Ничего не находиться... %(


Knight   (2004-11-27 11:57:00) [7]

Тоже чё-то не то...


Knight   (2004-11-27 11:42:00) [8]

Кажись нашёл... WNetOpenEnum и WNetEnumResource... пошёл пробовать...


Наверх

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