Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];

Вниз

Как узнать IP-адрес компьютера?   Найти похожие ветки 

 
Calibr ©   (2006-08-20 21:28) [0]

Как узнать IP-адрес компьютера?


 
DprYg ©   (2006-08-20 21:34) [1]

uses
 WinSock;

function GetLocalIP: String;
const WSVer = $101;
var
 wsaData: TWSAData;
 P: PHostEnt;
 Buf: array [0..127] of Char;
begin
 Result := "";
 if WSAStartup(WSVer, wsaData) = 0 then begin
   if GetHostName(@Buf, 128) = 0 then begin
     P := GetHostByName(@Buf);
     if P <> nil then Result := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
   end;
   WSACleanup;
 end;
end;


 
DrPass ©   (2006-08-20 21:50) [2]


> Как узнать IP-адрес компьютера?

127.0.0.1


 
Calibr ©   (2006-08-20 22:21) [3]

А что он у всех компов одинаковый чтоли?


 
Чапаев ©   (2006-08-20 23:08) [4]

Открою секрет: у компов не IP-адреса вовсе. Адрес бывает у сетевого интерфейса.


 
Чапаев ©   (2006-08-20 23:10) [5]

"не" в смысле "нет".


 
Мичман Панин   (2006-08-21 02:18) [6]

В военное время каждый компьютер должен знать и четко исполнять команду "Айпиконфиг". Вражеский компьютер допрашивается на иностранном языке: ipconfig.


 
Calibr ©   (2006-08-21 13:25) [7]


> Открою секрет: у компов не IP-адреса вовсе. Адрес бывает
> у сетевого интерфейса

Хорошо, как тогда узнать адрес сетевого интерфейса?


 
Сергей М. ©   (2006-08-21 13:33) [8]


> как тогда узнать адрес сетевого интерфейса?


Чем ipconfig.exe не устроил ?


 
Calibr ©   (2006-08-21 14:05) [9]


> Чем ipconfig.exe не устроил ?

127.0.0.1 чтоли? так от на всех компах одинаковый, а мне надо чтоб номер был только на одном компе.


 
Сергей М. ©   (2006-08-21 14:21) [10]

Вот результат работы IPCONFIG:

       DNS суффикс этого подключения . . :
       Описание  . . . . . . . . . . . . : &#9492;фряЄхЁ Realtek RTL8139(A) PCI Fast
Ethernet
       Физический адрес. . . . . . . . . : 00-55-B9-4D-77-7E
       DHCP разрешен . . . . . . . . . . : Нет
       IP-адрес  . . . . . . . . . . . . : 192.168.7.6
       Маска подсети . . . . . . . . . . : 255.255.255.0
       Основной шлюз . . . . . . . . . . : 192.168.7.111
       DNS-серверы . . . . . . . . . . . : 192.168.7.1
                                           192.168.7.111
       Основной WINS-сервер  . . . . . . : 192.168.7.1

Где ты здесь увидел 127.0.0.1 ?


 
Calibr ©   (2006-08-21 14:23) [11]

И что мне дает ipconfig.exe? Консольное окно мелькнуло и все, а мне нужен IP-адрес.


 
Rouse_ ©   (2006-08-21 14:24) [12]

Calibr, По поводу IP адресов, вникай: http://rouse.front.ru/netifenum.zip


 
Calibr ©   (2006-08-21 14:25) [13]


> Сергей М.


Ну я имею ввиду программно узнать IP-адрес.


 
Сергей М. ©   (2006-08-21 14:26) [14]


> Calibr ©   (21.08.06 14:23) [11]
>
> И что мне дает ipconfig.exe? Консольное окно мелькнуло и
> все, а мне нужен IP-адрес


Стартуешь программно процесс ipconfig.exe с перехватом StdOut и получаешь полный текст того, что было нарисовано в окне консоли с момента запуска ipconfig.exe и по самое его окончание.
Извлечь же из полученного текста интересующую инф-цию - дело проще некуда.


 
Calibr ©   (2006-08-21 14:34) [15]


> Сергей М.


Спасибо!!!


 
Calibr ©   (2006-08-21 14:41) [16]


> Сергей М.


Блин, что то не могу найти такое StdOut. Ты не ошибся с синтаксисом?


 
grisme ©   (2006-08-21 14:44) [17]

Чей ip-то? какого "компьютера"?
локалхост 127.0.0.1


 
Calibr ©   (2006-08-21 14:49) [18]


> grisme

Мне нужен IP-адрес, который отображается в консольном приложении ipconfig.exe только вот не могу оттуда взять информацию не подскажете как?


 
Rouse_ ©   (2006-08-21 14:53) [19]


> Блин, что то не могу найти такое StdOut. Ты не ошибся с
> синтаксисом?

Это делается через GetStdHandle.
Только не парься с этим, выше я тебе привел пример кода (качай пример по ссылке), который получает и выводит эту же информацию.


 
Сергей М. ©   (2006-08-21 14:53) [20]


> Calibr ©   (21.08.06 14:41) [16]


Не там ищешь, наверно.

Читай внимательно описание структуры STARTUPINFO в параметрах ф-ции CreateProcess() - там фигурирует hStdOutput, это хэндл пайпа, создаваемого вызовом CreatePipe()


 
Calibr ©   (2006-08-21 15:09) [21]


> Rouse_


А что прога мне ничто не выводит? Компонент TTreeView пустой.


 
Rouse_ ©   (2006-08-21 15:18) [22]

Значит не видит твоих сетевых интерфейсов, что уже само по себе интересно :)


 
Calibr ©   (2006-08-21 15:22) [23]


> Rouse_

Так что, если комп не врублен в сеть, то и IP-адрес узнать нельзя? Объясни мне тогда, пожалуйста, как изъять информацию из консольного приложения ipconfig.exe? Или приведи пример кода.


 
Rouse_ ©   (2006-08-21 15:26) [24]

запусти консоль (пуск -> выполнить -> CMD) в ней набери
ipconfig /all >c:\ipconfig.txt
покажи что написано в появившемся файле c:\ipconfig.txt


 
SergP.   (2006-08-21 15:29) [25]

> Хорошо, как тогда узнать адрес сетевого интерфейса?


А сетевых интерфейсов у компа может быть много, кроме того их вообще может не быть...


 
Calibr ©   (2006-08-21 15:35) [26]


> Rouse_


Вот содержимое файла ipconfig.txt:

Настройка протокола IP для Windows


 
Rouse_ ©   (2006-08-21 15:53) [27]


> Calibr ©   (21.08.06 15:35) [26]
>
> > Rouse_
>
>
> Вот содержимое файла ipconfig.txt:
>
> Настройка протокола IP для Windows

И это все? Тогда у тебя нет установленных сетевых интерфейсов.


 
n0name   (2006-08-22 14:38) [28]

Когда ты не в сети, IP ты не узнаешь.
PS: IP не у сетевого интерфейса, а задется в сетевом подключении.


 
Сергей М. ©   (2006-08-22 14:46) [29]


> n0name   (22.08.06 14:38) [28]


Глупости.


 
derex   (2006-08-22 16:30) [30]

В первом посту выыодится локальный ip в сети
А каким образом можно узнать его инетовский динамический ip.


 
Rouse_ ©   (2006-08-22 16:46) [31]

Тот который выдал тебе провайдер? Достучаться до его роутера через SNMP и спросить: http://www.sources.ru/protocols/snmp_learning.shtml
Если не даст доступа (что скорее всего и будет) запросить у внешнего сервиса, к примеру http://f10.net.ru/ страничку из которой можешь выдрать данную информацию элементарным парсингом...


 
n0name   (2006-08-22 17:47) [32]


> Глупости.

Где конкретно?


 
Rouse_ ©   (2006-08-22 18:13) [33]


> Где конкретно?

Да собственно весь твой пост глупость.
Зачем говорить о тех вещах в которых не разбираешся?


 
n0name   (2006-08-22 19:02) [34]


> Когда ты не в сети, IP ты не узнаешь.

Как узнать? Ни через IpHlpAPI, ни через winsock у меня не получилось обнаружить реальный IP.

> PS: IP не у сетевого интерфейса, а задется в сетевом подключении.

Ты возражаешь против этого?


 
Отец Кондратий   (2006-08-23 08:16) [35]

To n0name
> Когда ты не в сети, IP ты не узнаешь.

>Как узнать? Ни через IpHlpAPI, ни через winsock у меня не получилось >обнаружить реальный IP.

> PS: IP не у сетевого интерфейса, а задется в сетевом подключении.

>Ты возражаешь против этого?

Я тоже возражаю, если никто не против... Переставим слова в Вашем посте и получим ответ: IP адрес сетевого интерфейса задаётся в сетевом подключении!
Касаемо IP адреса: IP на интерфейсе можно запросто узнать даже без подключения к сети если считать из реестра содержимое ключа GUID, соответствующее этому интерфейсу (IPAddress -> REG_MULTI_SZ).


 
n0name   (2006-08-23 09:49) [36]


> Отец Кондратий   (23.08.06 08:16) [35]

У нас в сети динамическое распределение IP, так что вышеизложенный способ не подойдет.


 
Rouse_ ©   (2006-08-23 10:58) [37]


> > Когда ты не в сети, IP ты не узнаешь.
>
> Как узнать? Ни через IpHlpAPI, ни через winsock у меня не
> получилось обнаружить реальный IP.

Странно, выдернул кабель - IP определяется, что я делаю не так?


> > PS: IP не у сетевого интерфейса, а задется в сетевом подключении.
> Ты возражаешь против этого?

Естественно, для тебя это откровение что оборудование может иметь собственный IP адрес без всякого сетевого подключения?


 
saxon   (2006-08-23 11:14) [38]


> Странно, выдернул кабель - IP определяется, что я делаю
> не так?

Не задизаблили (:)) все локал соединение.


 
n0name   (2006-08-23 12:30) [39]


> Естественно, для тебя это откровение что оборудование может
> иметь собственный IP адрес без всякого сетевого подключения?
>

Да. Я всегда думал что уникальность сетевого оборудования выражается в MAC-адресе.

> Странно, выдернул кабель - IP определяется, что я делаю
> не так?

Дык соединения то существует. Отключи его и не определится.


 
Сергей М. ©   (2006-08-23 12:54) [40]


> n0name   (23.08.06 12:30) [39]



> IP не у сетевого интерфейса, а задется в сетевом подключении


При регистрации и настройке сетевого подключения как раз и происходит регистрация и настройка сетевых интерфейсов, с которыми это подключение будет ассоциировано.

Одно и то же сет.подключение м.б. ассоциировано с одним или более сет.интерфесов. Разумеется, если временно отключено, ни один из интерфейсов, ассоциированных с этим подключением, не доступен, не говоря уже о параметрах интерфейса.



Страницы: 1 2 вся ветка

Форум: "Сети";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.036 c
5-1147508616
_duk
2006-05-13 12:23
2007.01.28
DBGrid


2-1168505675
Vemer
2007-01-11 11:54
2007.01.28
Application.Active


15-1168153024
Slider007
2007-01-07 09:57
2007.01.28
С днем рождения ! 7 января


15-1168289528
Comp
2007-01-08 23:52
2007.01.28
Первая программа на Java или все тот же Hello, World!!!


2-1168190561
Влад
2007-01-07 20:22
2007.01.28
OR





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский