很急!!!!!!!!!!!在线等待,怎样得到本机IP和修改它

解决方案 »

  1.   

    呵呵!分拿定了,我刚好前两天写的程序,原码给你
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls,winsock,registry;type
      TForm1 = class(TForm)
        Button1: TButton;
        Edit1: TEdit;
        Button2: TButton;
        Edit2: TEdit;
        procedure Button2Click(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}
    function GetIPAddress : string;
    var
       Sdata : TWSAData;
       ErrorCode: Integer;
       HEnt: PHostEnt;
       IPAddr : TInAddr;
       CName : PChar;
       iSize : longword;
    begin
         isize := MAX_COMPUTERNAME_LENGTH;
         GetMem(CName, iSize);
         Try
            GetComputerName(CName, iSize);
            ErrorCode := WSAStartup($0101, SData);
            if ErrorCode = 0 then
            begin
              Try
                 HEnt := GetHostbyName(CName);
                 if HEnt <> nil then
                 begin
                      with IPAddr, HEnt^ do
                      begin
                        S_un_b.s_b1 := h_addr^[0];
                        S_un_b.s_b2 := h_addr^[1];
                        S_un_b.s_b3 := h_addr^[2];
                        S_un_b.s_b4 := h_addr^[3];
                      end;
                      Result := inet_ntoa(IPAddr);
                 end;
              Finally
              end;
            end;
         Finally
                FreeMem(CName);
         end;
    end;
    procedure TForm1.Button2Click(Sender: TObject); 获得ip
    begin
    edit2.Text:=GetIPAddress ;
    end;procedure TForm1.Button1Click(Sender: TObject); 修改IP
    var
    Reg: TRegistry;
    begin
      Reg := TRegistry.Create;
      Reg.RootKey := HKEY_LOCAL_MACHINE;
    if
    Reg.OpenKey('\System\CurrentControlSet\Services\Class\NetTrans\0000', True)
    then Reg.WriteString('IPAddress',edit1.text);
    Reg.CloseKey;
    Reg.Free;
    showmessage('修改成功');
    end;
    end.
      

  2.   

    function GetLocalIP(var LocalIp: string): Boolean;
    var
        HostEnt: PHostEnt;
        Ip: string;
        addr: pchar;
        Buffer: array [0..63] of char;
        GInitData: TWSADATA;
    begin
      Result := False;
      try
        WSAStartup(2, GInitData);
        GetHostName(Buffer, SizeOf(Buffer));
        HostEnt := GetHostByName(buffer);
        if HostEnt = nil then Exit;
        addr := HostEnt^.h_addr_list^;
        ip := Format('%d.%d.%d.%d', [byte(addr [0]),
              byte (addr [1]), byte (addr [2]), byte (addr [3])]);
        LocalIp := Ip;
        Result := True;
      finally
        WSACleanup;
      end;
    end;