Конференция "Сети" » Внутренний IP [D5]
 
  • Deltas © (02.01.09 22:15) [0]
    Здравствуйте, уважаемые мастера. Извиняюсь за избитый, наверняка, вопрос. Как можно определить внутренний IP адрес компьютера? То есть тот, который настраивается в настройках TCP/IP локального сетевого подключения.
  • Сергей М. © (02.01.09 22:31) [1]
  • Anatoly Podgoretsky © (02.01.09 22:58) [2]
    > Deltas  (02.01.2009 22:15:00)  [0]

    У компьютера нет ИП адреса(сов)
  • Сергей М. © (02.01.09 23:08) [3]

    > Deltas


    см. [2]

    1. Адрес есть у сетевого интерфейса.
    2. Сетевой интерфейс имеет отношение к сетевому хосту.
    3. Хост <> Компьютер.
    4. Каждый интерфейс может иметь более одного адреса.
    5. Хост можети иметь более одного сетевого интерфейса.

    Думай. Делай выводы. Корректируй постановку задачи.
  • KilkennyCat © (03.01.09 06:12) [4]

    > У компьютера нет ИП адреса(сов)


    неправда! есть! 127.0.0.1 вот!
  • Deltas © (03.01.09 08:33) [5]
    Доброе утро!
    У меня один сетевой интерфейс. При подключении к интернету, он имеет 2 IP-адреса. Мне необходимо определить внутренний IP-адрес, то есть тот, который используется для подключения по локальной сети. Это не является невозможным, исходя из того, что утилита ipconfig справляется с этой задачей.

    > KilkennyCat ©   (03.01.09 06:12) [4]
    > неправда! есть! 127.0.0.1 вот!

    Уже давно не смешно, правда...
  • Anatoly Podgoretsky © (03.01.09 13:21) [6]
    > KilkennyCat  (03.01.2009 6:12:04)  [4]

    Это виртуальный интерфейс lo (local)
  • Anatoly Podgoretsky © (03.01.09 13:22) [7]
    > Deltas  (03.01.2009 8:33:05)  [5]

    Тогда приведи ipconfig -an
  • Deltas © (03.01.09 14:34) [8]

    > Тогда приведи ipconfig -an

    Что такое -an? параметр запуска?
  • Поросенок Винни-Пух © (03.01.09 14:42) [9]
    какая разница что это
  • KilkennyCat © (03.01.09 15:09) [10]

    > Anatoly Podgoretsky ©   (03.01.09 13:21) [6]

    А неважно. Важно то, что он есть сразу, как только винды установишь ;) Значит, это изначальный адрес компа.
  • Anatoly Podgoretsky © (03.01.09 15:17) [11]
    > KilkennyCat  (03.01.2009 15:09:10)  [10]

    Ты уверен?
    Если например нет ни одной сетевой платы?
  • KilkennyCat © (03.01.09 17:27) [12]

    > Anatoly Podgoretsky ©   (03.01.09 15:17) [11]

    гм.... теперь не уверен. Точнее, не помню... уж сто лет как не собирал несетевую машину. Ночью проверю.
  • Сергей М. © (03.01.09 20:32) [13]

    > Deltas


    ipconfig -all
  • Deltas © (04.01.09 10:24) [14]
    ipconfig /all
    Отображается два подключения: по локальной сети (Ethernet адаптер) и подключение к интернету (PPP адаптер). Получить текущий список IP-адресов сетевой карты не проблема. Вопрос заключается в том, как с помощью Win API определить какой именно из этих IP-адресов относится к подключению по локальной сети...

    > Поросенок Винни-Пух ©   (03.01.09 14:42) [9]
    > какая разница что это

    Отдельное спасибо за помощь :)
  • Smile (04.01.09 10:37) [15]
    > Deltas ©   (04.01.09 10:24) [14]

    Чем тебя не устраивает
    function GetLocalIP: String;


    из Сергей М. ©   (02.01.09 22:31) [1]
    http://pda.delphimaster.net/?id=1199825920&n=4
    ?
  • Сергей М. © (04.01.09 10:56) [16]

    > какой именно из этих IP-адресов относится к подключению
    > по локальной сети


    Оба.


    > подключение к интернету (PPP адаптер)


    "Подключение к интернету" есть ничто иное как подключение к локальной сети Интренет-провайдера.

    Поэтому ответом на вопрос


    > какой именно из этих IP-адресов относится к подключению
    > по локальной сети


    будет оба.
  • Сергей М. © (04.01.09 11:07) [17]

    > Deltas


    При достаточной уверенности в соблюдении требований RFC 1918

    http://tools.ietf.org/html/rfc1918 (см. п.3)

    достаточно проверить каждый из имеющихся в распоряжении IP-адресов каждого из интерфейсов на вхождение в диапазоны, оговариваемые в RFC
  • Deltas © (04.01.09 11:25) [18]

    > 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...

    Все понятно. Большое спасибо.
  • Anatoly Podgoretsky © (04.01.09 21:13) [19]

    > > Если например нет ни одной сетевой платы?
    >
    > Просто к слову, цитата из Википедии: "Использование адреса
    > 127.0.0.1 позволяет устанавливать соединение и передавать
    > информацию для программ-серверов, работающим на том же компьютере,
    >  что и программа-клиент, независимо от конфигурации аппаратных
    > сетевых средств компьютера (не требуется сетевая карта,
    > модем, и прочее коммуникационнное оборудование, интерфейс
    > реализуется при помощи драйвера псевдоустройства в ядре
    > операционной системы)."

    Читать умеешь, что по твоему это "при помощи драйвера псевдоустройства" - это и есть виртуальная сетевая плата. Ни одна сетевая плата не работает сама по себе, а только через ее драйвер. Поэтому если нет сетевой платы любого вида, хоть нуль модем, нет и адреса 127.0.0.1
 
Конференция "Сети" » Внутренний IP [D5]
Есть новые Нет новых   [134435   +33][b:0][p:0.001]