![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ip-адрес [D6, WinXP]
AlexDeQuick © (2004-03-22 18:14:00)Подскажите , как в Windows XP определить IP-адрес.
kILL (2004-03-24 11:26:00) [1]В реестре ветка есть с указанием локального ипа
AlexDeQuick (2004-03-23 19:30:00) [2]Спасибо всем!!!
Колян_К (2004-03-23 15:23:00) [3]FAQ читай!
Rouse_ (2004-03-23 15:19:00) [4]> [5] Ozone © (23.03.04 14:47)
А с какой стати он даст нужный нам IP?
вот к примеру несколько модифицируем код:
procedure TForm1.Button1Click(Sender: TObject);
var
WSAData : TWSAData;
p : PHostEnt;
Name : array [0..$FF] of Char;
begin
WSAStartup($0101, WSAData);
GetHostName(name, $FF);
p := GetHostByName(Name);
while (p.h_addr_list^ <> nil) do
begin
Memo1.Lines.Add(inet_ntoa(PInAddr(p.h_addr_list^)^));
Inc(p.h_addr_list);
end;
WSACleanup;
end;
У меня результатом 3 абсолютно разных IP адреса...
Ozone (2004-03-23 14:47:00) [5]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;
Verg (2004-03-23 14:23:00) [6]Кроме ф-ции GetIpAddrTable из уже названной IpHlpAPI.dll,
адреса можно получить через ф-цию WSAIoctl с командой
SIO_ADDRESS_LIST_QUERY из winsock2
AlexDeQuick (2004-03-23 11:00:00) [7]For Verg : компа своего!
Verg (2004-03-22 21:05:00) [8]Чей?
Ozone (2004-03-22 20:51:00) [9]IpHlpAPI