怎样知道自己计算机的ip?
  用控件和api都成
  关键是简单!

解决方案 »

  1.   

    uses winsock;var
      WSAData:TWSAData;
      HostEnt:PHostEnt;
      CompName,sIP:string;
    begin
      CompName:=Edit1.Text;
      WSAStartup(2,WSAData);
      HostEnt:=gethostbyname(pchar(CompName));
      if HostEnt<>nil then
         begin
           with HostEnt^ do
              sIP:=Format('%d.%d.%d.%d',[byte(h_addr^[0]),byte(h_addr^[1]),byte(h_addr^[2]),byte(h_addr^[3]));
         end;
      WSACleanup;
      Edit2.Text:=sIP;
    end;
      

  2.   

    d5,d6
    FastNet面版里面的任何一个控件都有LocalIP属性
      

  3.   

    对,在FastNet里放一个nmhttp,nmftp这样的,都有localIP,可以读出,但是如果你是单机拨号,这是你拨号的IP,如果你在局域网中,它就是你小网中的IP。
      

  4.   

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs,winsock, StdCtrls;procedure TForm1.Button1Click(Sender: TObject);
    var
      wsadata:Twsadata;
      P:phostent;
      sip:string;
      inetaddr:dword;
    begin
      wsastartup(2,wsadata);
      sip:=edit1.Text;
      inetaddr:=inet_addr(pchar(sip));
      try
        p:=gethostbyaddr(@inetaddr,length(sip),pf_inet);
        memo1.Lines.Add(p^.h_name);
        memo1.Lines.Add(string(p^.h_aliases));
       finally
         wsacleanup;
       end;
    end;
      

  5.   

    实在不好意思,我给你的程序是edit1输入ip,可以得到对方的机器名