Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > IP address


Автор: Basя 6.4.2003, 14:04
Как узнать собственный ip адрес компа?
Спасибо!

Автор: <Spawn> 6.4.2003, 14:29
Цитата(Bas @ 6.4.2003, 06:04)
Как узнать собственный ip адрес компа?
Спасибо!

Код
uses
   idWinSock2;

function  GetLocalIP:  String;
const  WSVer  =  $0202;
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;

Автор: Pakshin A. S. 6.4.2003, 17:46
Или это:

Код

uses WinSock;

...


function my_ip_address: longint;
const
bufsize = 255;
var
buf:pointer;
RemoteHost:PHostEnt;
begin
buf:=nil;
try
 GetMem(vuf, bufsize);
 WinSock.GetHostName(buf, bufsize);
 RemoteHost:=WinSock.GetHostByName*buf);
 if RemoteHost = nil
  then
   Result:=WinSock.htonl($07000001)
  else
   result:=longint(pointer(remotehost^.h_addr_list^)^);
finally
if buf <> nil
 then
  FreeMem(buf, bufsize);
end;
Result:=WinSock.ntohl(Result);
end;


P. S. Эту штуку никогда не пробовал, так что не знаю что из неё получится на самом деле...

Автор: Sluggard 21.4.2003, 22:19
Обработать стандартную команду GetIp

Автор: Sluggard 21.4.2003, 22:21
Либо стандартную виндовую Ipconfig

Автор: Addmin 5.2.2006, 15:07
Вот очень коротенький код, чтобы узнать Ip в любое время:

Код

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);
  Host.Caption := h^.h_Name; //Host отображает хост(имя) компьютера
  {Достаем IP}
  i := iNet_ntoa(PInAddr(h^.h_addr_list^)^);
  IPaddr.Caption := i; //Теперь IPaddr отображает IP-адрес
  WSACleanup;


Вот только если ты не подключён к интернету, Ip всегда будет одинаков: 127.0.0.1

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)