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

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

Различие между локальным и инетовским IP [D5, D6, Win95/98, WinME, Win2k, WinXP]


Страницы:   1 2

Rouse_ ©   (2002-09-27 00:04:00) 

Здравствуйте уважаемые мастера, собственно сабж, знаю что тема обсуждалась, но не могу найти пост - вопрос как узнать что (например 192.168.24.1) - адрес из локальный сети а не используется для подключения к интернету

Заранее спасибо


Aralekin   (2002-09-27 17:31:00) [21]

Привет!...Я тоже столкнулся с этой проблеммой.
Тут в чем фишка...Функция GetLockalIP Действительно выдает правильный ИП, но тот который установлен в дефолтовой сетевой карте(то есть та, что имеет индекс 0).
А вот в компе с двумя карточками , причем первая - интернетовская, а вторая - локальная, под 95, 98 и Ме при определении функцией GetLockalIP последняя вернет адресс 192.168.24.1(т.е. интернетовский), равно как и комманда nbtstat -a [HostName].
Но если nbtstat запустить на такой же машине с двумя картами, но с системой W2000 или W-XP, то программа покажет две таблицы для двух карточек.

Делай вывод: Твоя (В чём я лично сомневаюсь) функция не то чтобы не правильная, нет. Она все правильно делает, и IP показывает и если добавишь вот такой код:

Current_Host:=P.h_name;

то и имя машины покажет. Но она берет информацию из той карты , которая имеет Default конфигурацию. А под 9x это - интернетовская карта-ВСЕГДА (глюк или баг как хочешь так и называй).

Поэтому лучше обрашаться к машине по HostName...но это зависит от поставленной задачи...


Wonder   (2002-09-27 15:54:00) [22]

Ну начнем с того, что и через локальную сеть можно выходить в инет :)
Так что вопрос, по существу, некорректен.
Можно узнать какой IP-адрес какому интерфейсу соответствует.


Rouse_   (2002-09-27 15:45:00) [23]

Получаю следующим образом

function TForm1.GetLockalIP: String;
var WSAData : TWSAData;
p : PHostEnt;
Name : array [0..$FF] of Char;
begin
WSAStartup($0101, WSAData);
GetHostName(name, $FF);
p := GetHostByName(Name);
result := inet_ntoa(PInAddr(p.h_addr_list^)^);
WSACleanup;
end;

Заранее спасибо


Ghost.   (2002-09-27 08:40:00) [24]

Смотря откуда ты его берешь...


Страницы:   1 2

Наверх

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