Форум: "Сети";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];
ВнизКак узнать свой IP в сетке а не в Инете.... Найти похожие ветки
← →
TankMan (2002-11-27 03:06) [0]Я только вот начал разбираться с работой в сети, и у меня возник такой вопрос, как узнать свой IP? Я тут на этом сайте нашел 2 примера... они находят локальный IP, но локальных-то 2... один в моей сетке, а другой в инете. И когда я в инете оба примера, которые есть на сайте выдают мне инетовский IP, а мне нужен свой... объясните бедному ламеру, покажите на пальцах (примере).
← →
Wonder (2002-11-27 10:21) [1]var
WSAData : TWSAData;
p : PHostEnt;
Name : array [0..$FF] of Char;
begin
WSAStartup($0101, WSAData);
GetHostName(name, $FF);
p := GetHostByName(Name);
while (p.h_addr_list^ <> nil) do begin
memo1.Lines.Add(inet_ntoa(PInAddr(p.h_addr_list^)^));
inc(p.h_addr_list);
end;
WSACleanup;
end;
← →
kostya (2002-11-27 10:36) [2]IdIPWatch1.LocalIP;
// На форму только компонент IdIPWatch1 кинь :-)
← →
TankMan (2002-11-27 23:24) [3]>>kostya
Не глумись над человеком (на до мной) :)
>>Wonder
Ааа... а можно как нибудь узнать, какой из этих ИП - от локалки? (я то знаю, а прожка то как узнает? )
← →
Ocean (2002-11-29 12:35) [4]Нужно посмотреть на зону. У локалки может быть А, В или С, у каждой свой диапазон ip. На память не помню, см. зоны LAN в рамблере.
Ну, а если админ построил сеть на реальных ip, тут я умолкаю...
← →
TankMan (2002-11-29 20:49) [5]Так причем тут зоны? Зоны у инетовского и локального ИП, могут быть одинаковыми....
Так что получается, что никак и не узнаешь чтоли?
← →
Alex Konshin (2002-11-30 08:17) [6]IP-адрес имеет интерфейс, а не компьютер, то есть, если правильно задать вопрос, то и ответ очевиден. И один интерфейс может иметь несколько ip-адресов.
Вопрос, который имеет хоть какой-то смысл, будет звучать так:
"Как узнать ip-адрес dialup интерфейса?" или
"Как узнать ip-address сетевой карты?".
И какой все-таки адрес ты хочешь получить?
Тебе нужно самому понимать, чем отличаются интерфейсы машины, какой из них тебе нужен и, соответственно, брать нужный адрес.
Но, по-моему проще достать адрес интерфейса, через который
идет роутинг на какой-то другой адрес.
Например, если сокет уже создан, то можно использовать WSAIoctl с SIO_ADDRESS_LIST_QUERY или SIO_ROUTING_INTERFACE_QUERY.
Описание смотри в MSDN (msdn.microsoft.com)
По поводу "зоны": человек хотел сказать "класс ip-адреса" (если мне память не изменяет). Речь идет о старших 2 битах адреса. Тебе это не поможет, так как это никак не характеризует интерфейсы (с точки зрения локальный/внешний).
← →
TankMan (2002-12-01 22:20) [7]>>Alex Konshin
По поводу "зоны" - класса, я это знаю и этоже и имел ввиду...
>Вопрос, который имеет хоть какой-то смысл, будет звучать так:
>"Как узнать ip-адрес dialup интерфейса?" или
>"Как узнать ip-address сетевой карты?".
Мне нужен ip сетевой карты... вобщем и все...
← →
TankMan (2002-12-03 01:07) [8]Ответа так и нету... прекрассно...
← →
Alex Konshin (2002-12-04 04:43) [9]Тебе же объяснили, что в общем случае это не решается.
Можно, например, использовать роутинг: ты знаешь какой-то адрес в сети и запрашиваешь ip-адрес интерфейса через который идет роутинг на этот адрес. Это, пожалуй, единственный способ как-то отличить ip-адреса используя Winsock2.
Как ты будешь отличать интерфейсы, если сетевых карт несколько?
Одна сетевая карта может иметь несколько ip-адресов и даже интерфесов. Может, например, быть установлен какой-нибудь VPN, который будет выглядеть как сетевой адаптер и ip-адрес, например, назначен именно ему, а самой сетевой карте. Короче, если делаешь что-то для себя, то тогда ты можно делать какие-то преположения о конфигурации машины и, соответственно, можно понять что искать. Далее гляди в MSDN про iphlpapi.dll:
http://msdn.microsoft.com/library/en-us/iphlp/iphlp/about_ip_helper.asp
Но это, конечно, уже не Winsock.
А ты ведь даже не заикнулся о предполагаемой OS, чего ж от нас хочешь?
← →
pwlusa (2002-12-04 04:46) [10]Паралельный вопрос, как узнать ip в инете?
← →
Alex Konshin (2002-12-04 05:02) [11]Я уже ответил. Хотя что ты понимаешь под "ip в инете"?
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c