Главная страница
    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.58 MB
Время: 0.023 c
3-81198
Gunner
2002-07-04 20:23
2002.07.25
Кто может перечислить типы полей для MsAccess 2000


14-81458
Григорий Ситнин
2002-06-04 12:13
2002.07.25
Требуется программист


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


1-81236
shodan
2002-07-14 14:45
2002.07.25
Кто знает где достать компонент?


1-81303
Андрусь
2002-07-12 12:35
2002.07.25
закрытие главной формы MDI приложения





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