-
Здравствуйте, уважаемые мастера. Извиняюсь за избитый, наверняка, вопрос. Как можно определить внутренний IP адрес компьютера? То есть тот, который настраивается в настройках TCP/IP локального сетевого подключения.
-
-
> Deltas (02.01.2009 22:15:00) [0]
У компьютера нет ИП адреса(сов)
-
> Deltas
см. [2]
1. Адрес есть у сетевого интерфейса.
2. Сетевой интерфейс имеет отношение к сетевому хосту.
3. Хост <> Компьютер.
4. Каждый интерфейс может иметь более одного адреса.
5. Хост можети иметь более одного сетевого интерфейса.
Думай. Делай выводы. Корректируй постановку задачи.
-
> У компьютера нет ИП адреса(сов)
неправда! есть! 127.0.0.1 вот!
-
Доброе утро!
У меня один сетевой интерфейс. При подключении к интернету, он имеет 2 IP-адреса. Мне необходимо определить внутренний IP-адрес, то есть тот, который используется для подключения по локальной сети. Это не является невозможным, исходя из того, что утилита ipconfig справляется с этой задачей.
> KilkennyCat © (03.01.09 06:12) [4]
> неправда! есть! 127.0.0.1 вот!
Уже давно не смешно, правда...
-
> KilkennyCat (03.01.2009 6:12:04) [4]
Это виртуальный интерфейс lo (local)
-
> Deltas (03.01.2009 8:33:05) [5]
Тогда приведи ipconfig -an
-
> Тогда приведи ipconfig -an
Что такое -an? параметр запуска?
-
какая разница что это
-
> Anatoly Podgoretsky © (03.01.09 13:21) [6]
А неважно. Важно то, что он есть сразу, как только винды установишь ;) Значит, это изначальный адрес компа.
-
> KilkennyCat (03.01.2009 15:09:10) [10]
Ты уверен?
Если например нет ни одной сетевой платы?
-
> Anatoly Podgoretsky © (03.01.09 15:17) [11]
гм.... теперь не уверен. Точнее, не помню... уж сто лет как не собирал несетевую машину. Ночью проверю.
-
> Deltas
ipconfig -all
-
ipconfig /all
Отображается два подключения: по локальной сети (Ethernet адаптер) и подключение к интернету (PPP адаптер). Получить текущий список IP-адресов сетевой карты не проблема. Вопрос заключается в том, как с помощью Win API определить какой именно из этих IP-адресов относится к подключению по локальной сети...
> Поросенок Винни-Пух © (03.01.09 14:42) [9]
> какая разница что это
Отдельное спасибо за помощь :)
-
-
> какой именно из этих IP-адресов относится к подключению
> по локальной сети
Оба.
> подключение к интернету (PPP адаптер)
"Подключение к интернету" есть ничто иное как подключение к локальной сети Интренет-провайдера.
Поэтому ответом на вопрос
> какой именно из этих IP-адресов относится к подключению
> по локальной сети
будет оба.
-
> Deltas
При достаточной уверенности в соблюдении требований RFC 1918
http://tools.ietf.org/html/rfc1918 (см. п.3)
достаточно проверить каждый из имеющихся в распоряжении IP-адресов каждого из интерфейсов на вхождение в диапазоны, оговариваемые в RFC
-
> Anatoly Podgoretsky © (03.01.09 15:17) [11]
> > KilkennyCat (03.01.2009 15:09:10) [10]
>
> Ты уверен?
> Если например нет ни одной сетевой платы?
Просто к слову, цитата из Википедии: "Использование адреса 127.0.0.1 позволяет устанавливать соединение и передавать информацию для программ-серверов, работающим на том же компьютере, что и программа-клиент, независимо от конфигурации аппаратных сетевых средств компьютера (не требуется сетевая карта, модем, и прочее коммуникационнное оборудование, интерфейс реализуется при помощи драйвера псевдоустройства в ядре операционной системы)."
> Smile (04.01.09 10:37) [15]
> Чем тебя не устраивает function GetLocalIP: String;
Эта функция вообще возвращает только первый IP-адрес в списке всех IP-адресов всех сетевых интерфейсов компьютера.
> Сергей М. © (04.01.09 11:07) [17]
> При достаточной уверенности в соблюдении требований RFC
> 1918...
Все понятно. Большое спасибо.
-
> > Если например нет ни одной сетевой платы?
>
> Просто к слову, цитата из Википедии: "Использование адреса
> 127.0.0.1 позволяет устанавливать соединение и передавать
> информацию для программ-серверов, работающим на том же компьютере,
> что и программа-клиент, независимо от конфигурации аппаратных
> сетевых средств компьютера (не требуется сетевая карта,
> модем, и прочее коммуникационнное оборудование, интерфейс
> реализуется при помощи драйвера псевдоустройства в ядре
> операционной системы)."
Читать умеешь, что по твоему это "при помощи драйвера псевдоустройства" - это и есть виртуальная сетевая плата. Ни одна сетевая плата не работает сама по себе, а только через ее драйвер. Поэтому если нет сетевой платы любого вида, хоть нуль модем, нет и адреса 127.0.0.1