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

Вниз

Последний раз про IP и GetHostByName   Найти похожие ветки 

 
chernoruk   (2002-05-13 07:53) [0]

Как же всё-таки узнать свой настоящий IP-адрес, если GetHostByName("localhost") всегда выдаёт 127.0.0.1?


 
Song   (2002-05-13 09:08) [1]

Function TForm1.GetHost:String; {Получение IP адреса}
Var WSAData:TWSAData;
p:PHostEnt;
Name:array [0..$FF] of Char;
Begin
WSAStartup($0101,WSAData);
GetHostName(Name, $FF);
p:=GetHostByName(Name);
Result:=inet_ntoa(PInAddr(p.h_addr_list^)^);
WSACleanup;
End;


 
Сатир   (2002-05-13 17:12) [2]

2Song
А какую нужно подключить библиотеку для типов и функций:
TWSAData, PHostEnt,WSAStartup, GetHostName,GetHostByName,
inet_ntoa.


 
Song   (2002-05-13 17:43) [3]

Uses WinSock


 
Сатир   (2002-05-13 19:39) [4]

2Song
спасибо, уже сам нашёл.
А TPowerSock где может быть?


 
Malder   (2002-05-13 21:29) [5]

Народ. Ну ответьте на следующий вопрос. А если имеется несколько интерфейсов, то как определить IP адреса в каждом их них ?


 
Song   (2002-05-13 21:35) [6]

2Malder © (13.05.02 21:29)
Тока по реестру.. Если 98SE


 
Malder   (2002-05-14 00:04) [7]

Song, ну это не выход... а если не 98SE ? Ведь WinIpCfg и ipconfig всегда все определяют хорошо ! КАК ОНИ ЭТО ДЕЛАЮТ ? СКОЛЬКО НЕ СПРАШИВАЛ - НИКТО НЕ ЗНАЕТ...


 
Song   (2002-05-14 00:08) [8]

:)))
А ты запускай WinIpCfg и ipconfig и анализируй ответ...


 
chernoruk   (2002-05-14 08:12) [9]

--->Song
Спасибо за работающий примерчик!


 
chernoruk   (2002-05-14 08:52) [10]

И ещё вопрос: что мы делаем выражениями типа PInAddr(...),
где PInAddr-какой-то тип-указатель?


 
Kaban   (2002-05-14 14:45) [11]

2Malder
Надо всего лишь поискать.
Посмотри исходники Network Adapter Monitor
http://users.pandora.be/dirk.claessens2/


 
Anatoly Podgoretsky   (2002-05-14 15:02) [12]

chernoruk © (14.05.02 08:52)
Это приседение типа


 
False_Delirium   (2002-05-15 01:01) [13]

// Гипотетически так должно быть верно
Function LocalIP : string;
type
TaPInAddr = array [0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe : PHostEnt;
pptr : PaPInAddr;
Buffer : array [0..63] of char;
I : Integer;
GInitData : TWSADATA;

Begin
WSAStartup($101, GInitData);
Result := "";
GetHostName(Buffer, SizeOf(Buffer));
phe :=GetHostByName(buffer);
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
// Phe^.h_addr_list - должен содержать IPдля всех интерфейсов.
I := 0;
while pptr^[I] <> nil do begin
// приводим их по очерёдности к нормальному виду
Result := Result + StrPas(inet_ntoa(pptr^[I]^)) + "#10#13" ;
Inc(I);
end;
WSACleanup;
End;



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

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

Наверх





Память: 0.47 MB
Время: 0.007 c
1-81306
Sasha M
2002-07-12 13:23
2002.07.25
Как отключить нажатие клавиши вызыв. меню windowsa


6-81394
chernoruk
2002-05-13 07:53
2002.07.25
Последний раз про IP и GetHostByName


1-81267
programmerts
2002-07-10 20:12
2002.07.25
Как написать программу без формы.


7-81504
ses1
2002-05-03 21:36
2002.07.25
Объем памяти видеоадаптера???


14-81463
Opuhshii
2002-06-28 11:08
2002.07.25
TFT





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