Главная страница
    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.006 c
1-81285
BlackSun
2002-07-11 00:12
2002.07.25
TEmbeddedWB. Плиз, мастера, помогите!!!


14-81409
books
2002-06-26 15:00
2002.07.25
Электронные книги по программированию


4-81512
z_1
2002-05-20 15:52
2002.07.25
Хендл активного окна


1-81222
Doctor Deejay
2002-07-13 17:13
2002.07.25
автоматическое определение кодировок


3-81188
Фикус
2002-07-03 08:42
2002.07.25
торможу, помогите пожалуйста





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