Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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
14-96985
Roma111
2003-01-13 10:17
2003.01.30
Компоненты для MS SQL 7


1-96699
Юра
2003-01-20 13:00
2003.01.30
Адрес обработчика


3-96582
Борис
2003-01-05 13:36
2003.01.30
IBUpdateSQL Хитрый запрос.


14-96988
Wizard
2003-01-11 13:28
2003.01.30
Мастер


3-96512
Z-man7777
2003-01-10 13:51
2003.01.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
Английский Французский Немецкий Итальянский Португальский Русский Испанский