⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hostname.pas

📁 获得本机的IP地址和主机名
💻 PAS
字号:
unit hostName;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Edit2: TEdit;
    Edit3: TEdit;
    Label3: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
        Ip:string;
        Ipstr:string;
        Buffer:Array[1..32] of char;
        i:integer;
        WSData:TWSAdata;
        Host:PHostEnt;
begin
        if WSAstartup(2,WSData)<>0 then
        begin
            ShowMessage('WS2_32.DLL初始化失败!');
            halt;
        end;
        try
            if GetHostName(@Buffer[1],32)<>0 then
            begin
                ShowMessage('没有得到主机名!');
                halt;
            end;
        except
            ShowMessage('没有成功返回主机名');
            halt;
        end;
        Host := GetHostByName(@Buffer[1]);
        if Host = nil then
             begin
                ShowMessage('IP地址为空');
                halt;
             end
        else
             begin
                Edit2.Text := Host.h_name;
                Edit3.Text := Chr(Host.h_addrtype+64);
                for i:=1 to 4 do
                    begin
                        Ip:=IntToStr(Ord(Host.h_addr^[i-1]));
                        ShowMessage('分段IP地址为:'+Ip);
                        if i<4 then
                           Ipstr := Ipstr + Ip + '.'
                        else
                           Edit1.Text:=Ipstr+Ip;
                        end;
                    end;
                WSACleanup;
             end;
end.

⌨️ 快捷键说明

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