如题

解决方案 »

  1.   

    {获得计算机名称}
    function GetcptName: String;
    var
      s: array[1..127] of char;
      i: DWord;
    begin
      GetComputerName(@s, i);
      Result := s;
    end;
    {获得本机IP}
    function LocalIP: string;
    type
      TaPInAddr = array[0..10] of PInAddr;
      PaPInAddr = ^TaPInAddr;
    var
      phe: PHostEnt;
      pptr: PaPInAddr;
      Buffer: array[0..63] of char;
      I: Integer;
      GInitData: TWSADATA;
    begin
      WSAStartup($101, GInitData);
      GetHostName(Buffer, SizeOf(Buffer));
      phe := GetHostByName(buffer);
      if phe = nil then
        Exit;
      pptr := PaPInAddr(Phe^.h_addr_list);
      I := 0;
      result := StrPas(inet_ntoa(pptr^[i]^));
      WSACleanup;
    end;
      

  2.   

    function GetLocalIp() : string;
    type
        TaPInAddr = array [0..10] of PInAddr;
        PaPInAddr = ^TaPInAddr;
    var
        phe  : PHostEnt;
        pptr : PaPInAddr;
        Buffer : array [0..63] of char;
        I    : Integer;
        GInitData      : TWSADATA;begin
        WSAStartup($101, GInitData);
        Result := '';
        GetHostName(Buffer, SizeOf(Buffer)); //buffer is local host name
        phe :=GetHostByName(buffer);
        if phe = nil then Exit;
        pptr := PaPInAddr(Phe^.h_addr_list);
        I := 0;
        while pptr^[I] <> nil do begin
          result:=StrPas(inet_ntoa(pptr^[I]^)); //result is local ip
          Inc(I);
        end;
        WSACleanup;
    end;
      

  3.   

    你用的是D7的话,很简单,有控件TIdIPWatch
    Caption := IdIPWatch1.LocalName + ' ' +IdIPWatch1.LocalIP
      

  4.   

    随时随刻知道自己的IP 
    资料编号:22692 来源:电脑爱好者 首先打开Delphi新建一个工程,添加一个定时器Timer1、一个标签Label1、一个PopupMenu1,并且为PopupMenu1添加一个Exit菜单项。下面就是全部的源代码:
    unit Unit1;
    interface
    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, Menus, StdCtrls, ExtCtrls, Winsock; //首先要添加winsock
    type
    TForm1 = class(TForm)
    Timer1: TTimer;
    Label1: TLabel;
    PopupMenu1: TPopupMenu;
    Exit: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
    Y: Integer);
    procedure Label1MouseDown(Sender: TObject; Button: TMouseButton;
    Shift: TShiftState; X, Y: Integer);
    procedure ExitClick(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;var
    Form1: TForm1;
    oldx,oldy: integer;//添加变量,用做移动窗体
    oldIp: string;
    implementation
    {$R *.dfm}
    //下面就是关键所在了 
    function LIP : string;
    type
    TaPInAddr = array [0..10] of PInAddr;
    PaPInAddr = ^TaPInAddr;
    var
    phe : PHostEnt;
    pptr : PaPInAddr;
    Buffer : array [0..63] of char;
    I : Integer;
    GInitData : TWSADATA;
    begin
    WSAStartup($101, GInitData);
    Result := ’’;
    GetHostName(Buffer, SizeOf(Buffer));
    phe :=GetHostByName(buffer);
    if phe = nil then Exit;
    pptr := PaPInAddr(Phe^.h_addr_list);
    I := 0;
    while pptr^[I] <> nil do begin
    result:=StrPas(inet_ntoa(pptr^[I]^));
    Inc(I);
    end;
    WSACleanup;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
    with Label1 do //定义属性
    begin
    Caption:=’’;
    Font.Charset:=ANSI_CHARSET;
    Font.Name:=’Arial’;
    Font.Size:=10;
    Font.Color:=clRed;
    Align:=alClient;
    PopupMenu:=popupmenu1;
    end;Timer1.Interval:=1000;
    Timer1.Enabled:=true;
    Label1.Caption:=’IP:’+LIP; //赋值,把Ip赋值给label1
    oldIp:=LIP;
    BorderStyle:=bsNone;
    Alphablend:=true; //呵呵,这个就是让窗口变透明的办法了
    Alphablendvalue:=100;
    FormStyle:=fsStayOnTop; //让窗体总在最前面
    end;procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    Label1.Caption :=’IP:’+LIP;
    if oldip <> LIP then
    Showmessage(’IP地址已经改变,请检查!’);//提醒用户
    end;procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
    Y: Integer);
    begin
    if ssleft in shift then //移动窗体Form1
    begin
    Form1.Left:=Form1.Left+x-oldx;
    Form1.Top:=Form1.top+y-oldy;
    end;
    end;procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
    Shift: TShiftState; X, Y: Integer);
    begin
    oldx:=x;
    oldy:=y;
    end;procedure TForm1.ExitClick(Sender: TObject);
    begin
    Close;
    end;
    end.
      

  5.   

    获得计算机机名
    char computername[255];
    DWORD size =255;
       GetComputerName(computername,&size);