unit1.~pas

来自「《Delphi 7应用编程150例》源码(全)」· ~PAS 代码 · 共 71 行

~PAS
71
字号
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, WinSock;

type
  TfrmMain = class(TForm)
    btnStart: TButton;
    edtIP: TEdit;
    edtName: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    function GetHostName:String;
    procedure btnStartClick(Sender: TObject);
    function NameToIP(Name:string):String;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}

function TfrmMain.GetHostName:String;
var
  ComputerName: array[0..MAX_COMPUTERNAME_LENGTH+1] of char;  
  Size: Cardinal;                                              
begin
  result:='';
  Size := MAX_COMPUTERNAME_LENGTH+1;

  if GetComputerName(ComputerName, Size) then
     result:=StrPas(Computername)
  else
     Showmessage('未找到计算机名称!');
end;

procedure TfrmMain.btnStartClick(Sender: TObject);
begin
    edtName.Text:=GetHostName;
    edtIP.Text:=NameToIP(edtName.Text);
end;

function TfrmMain.NameToIP(Name:string):String;
var
  WSAData: TWSAData;
  HostEnt: PHostEnt;
begin
  result:='';
  WSAStartup(2, WSAData);
  HostEnt := GetHostByName(PChar(Name));
  if HostEnt <> nil then
  begin
    with HostEnt^ do
     result:= Format('%d.%d.%d.%d',
        [Byte(h_addr^[0]), Byte(h_addr^[1]),
        Byte(h_addr^[2]), Byte(h_addr^[3])]);
    end;
    WSACleanup;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?