Текущий архив: 2005.10.02;
Скачать: CL | DM;
Вниз
Как я могу с помощью дельфи узнать IP моего компа?? Найти похожие ветки
← →
Gromada (2005-06-03 12:33) [0]Как я могу с помощью дельфи узнать IP моего компа??
← →
Digitman © (2005-06-03 13:11) [1]у компа может и не быть вообще никаких IP (тогда никто и ничто тебе не поможет), а может и целая куча их быть) ... тебя какой вариант интересует - когда ни одного или когда куча ?)
← →
-=S.S=- © (2005-06-03 13:19) [2]Вот самому недавно требовалось :)
Есно 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:29) [3]
> -=S.S=- © (03.06.05 13:19) [2]
а если на компе нет ни одного сетевого интерфейса ?
или интерфейсов куча ?
или не каждый интерфейс ассоциирован со стеком протоколов TCP/IP ? Или TCP/IP вообще не инсталлирован ни для одного из интерфейсов ?
← →
-=S.S=- © (2005-06-04 10:44) [4]
> Digitman © (03.06.05 13:29) [3]
В лутшем случае вернёт 127.0.0.1 ;)
← →
KorvinOE © (2005-06-04 11:53) [5]Я использую для этого Indy, а точнее два класа: TIdComponent и IdStack. А вот сама функция:
uses
IdStack, IdComponent;
function IPAdress : String;
var b:TIdComponent;
begin
b:=TIdComponent.Create(Self);
Result:=GStack.LocalAddress;
b.Destroy;
end;
Такой вариант меня больше всего устраивает, особення если и так используешь Indy. :)
← →
Глеб © (2005-06-06 07:54) [6]
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;
← →
Ozone © (2005-06-06 13:51) [7]> [6] Глеб © (06.06.05 07:54)
Вот скажи мне, чем твой код отличается от [2] если учесть [3] ?
По сабжу - используй библиотеку IpHlpAPI.dll. При желании описание сможешь найти на MSDN
Страницы: 1 вся ветка
Текущий архив: 2005.10.02;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.031 c