![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как я могу с помощью дельфи узнать IP моего компа??
Gromada © (2005-06-03 12:33:00)Как я могу с помощью дельфи узнать IP моего компа??
Ozone (2005-06-06 13:51:00) [1]> [6] Глеб © (06.06.05 07:54)
Вот скажи мне, чем твой код отличается от [2] если учесть [3] ?
По сабжу - используй библиотеку IpHlpAPI.dll. При желании описание сможешь найти на MSDN
Глеб (2005-06-06 07:54:00) [2]
function TForm1.GetServerIP: string;
var
WSAData: TWSAData;
SockAddrIn: TSockAddrIn;
Host: PHostEnt;
Localname: string;
LocalIP: PChar;
begin
if WSAStartup($101, WSAData) = 0 then begin
Host := GetHostByName(@Localname[1]);
if Host<>nil then begin
SockAddrIn.sin_addr.S_addr:= longint(plongint(Host^.h_addr_list^)^);
LocalIP := inet_ntoa(SockAddrIn.sin_addr);
Result := LocalIP;
end;
WSACleanUp;
end;
end;
KorvinOE (2005-06-04 11:53:00) [3]Я использую для этого Indy, а точнее два класа: TIdComponent и IdStack. А вот сама функция:
uses
IdStack, IdComponent;
function IPAdress : String;
var b:TIdComponent;
begin
b:=TIdComponent.Create(Self);
Result:=GStack.LocalAddress;
b.Destroy;
end;
Такой вариант меня больше всего устраивает, особення если и так используешь Indy. :)
-=S.S=- (2005-06-04 10:44:00) [4]
> Digitman © (03.06.05 13:29) [3]
В лутшем случае вернёт 127.0.0.1 ;)
Digitman (2005-06-03 13:29:00) [5]
> -=S.S=- © (03.06.05 13:19) [2]
а если на компе нет ни одного сетевого интерфейса ?
или интерфейсов куча ?
или не каждый интерфейс ассоциирован со стеком протоколов TCP/IP ? Или TCP/IP вообще не инсталлирован ни для одного из интерфейсов ?
-=S.S=- (2005-06-03 13:19:00) [6]Вот самому недавно требовалось :)
Есно Winsock в юзесы пропиши
var
wVerReq: WORD;
wsaData: TWSAData;
i: pchar;
h: PHostEnt;
c: array[0..128] of char;
begin
wVerReq := MAKEWORD(1, 1);
WSAStartup(wVerReq, wsaData);
GetHostName(@c, 128);
h := GetHostByName(@c);
ShowMEssage( h^.h_Name);
i := iNet_ntoa(PInAddr(h^.h_addr_list^)^);
Showmessage(i);
WSACleanup;
Digitman (2005-06-03 13:11:00) [7]у компа может и не быть вообще никаких IP (тогда никто и ничто тебе не поможет), а может и целая куча их быть) ... тебя какой вариант интересует - когда ни одного или когда куча ?)