Delphi编程根据IP地址得到主机名-Delphi-优质IT资源分享社区

admin
管理员
管理员
  • UID1
  • 粉丝29
  • 关注4
  • 发帖数581
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:183回复:0

Delphi编程根据IP地址得到主机名

楼主#
更多 发布于:2016-06-10 20:05

 
在网络程序的规划过程中,
经常需要依据得到的IP地址
取得主机的称号,本实例将演示怎么依据消费者输入的IP地址获取对应主机的称号 。
向窗体上添加两个TLabel组件、两个TEdit组件和一个TButton组件,规划
完成的主界面如图1所示 。
怎么延长iphone手机电池寿数ipad3怎么越狱,iPad3完美越狱教程
Win体系中怎么运用U盘分区新手拍摄进阶须知 怎么运用水平线构图




图1 主界面
Win7体系不一样的小功用汇总让Windows 7揪出每一个私自运转程序
Windows7的十大最好功用你知道吗?掌握细节与元素 室内人像拍摄窍门
在程序运转过程中首要需要向程序的uses段中参加Winsock,这么就
能够调用与Winsock
有关的函数进行操作 。
Attributes和FileName是两个全局变量
。其间Word类型的Attributes变量用于存储文件的特点,而String类型的FileName特点用于存储文件的途径和文件名 。
别的还要在FormCreate过程中添加下列代码:
procedure TfrmMain.btnConversionClick(Sender: TObject);
var
WSAData: TWSAData;
HostEnt: PHostEnt;
IPAddress: string;
addr: dword;
begin
edtName.Clear;
WSAStartup(2, WSAData);
IPAddress:=edtAddress.Text;
try
addr := inet_addr(PChar(IPAddress));
HostEnt:= GetHostByAddr(@addr, Length(IPAddress), PF_INET);
edtName.Text:=HostEnt.h_name;
except
ShowMessage('无效的IP地址');
end;
WSACleanup;
end;
程序运转前期就会履行FormCreate中的代码,首要经过OpenDialog.Execute句子来显现一个
揭示读者
取舍文件的对话框 。假设消费者在该对话框中承认
取舍了一个有用文件后,就把文件途径和文件名等信息存储在变量FileName中,把文件读写特点等信息存储在变量Attributes中 。
然后经过揣度Attributes别离与faReadOnly、faArchive、faSysFile和faHidden常量
对比的
结果,来决议ReadOnly、Archive、System和Hidden4个CheckBox组件的选中状态 。
经过lblPosition.Caption:=lblPosition.Caption+ExtractFileDir(FileName)句子在lblPosition组件中显现文件方位,经过lblName.Caption:=lblName.Caption+ExtractFileName(FileName)句子显现文件名
。终究经过GetFileSize函数和lblSize.Caption:=lblSize.Caption+Format('%d bytes',
[GetFileSize(FileName)])句子来显现文件巨细,GetFileSize函数代码如下:
function TfrmMain.GetFileSize(const FileName: string): LongInt;
var
SearchRec: TSearchRec;
begin
try
if FindFirst(ExpandFileName(FileName), faAnyFile, SearchRec) = 0 then
Result := SearchRec.Size
else Result := -1;
finally
SysUtils.FindClose(SearchRec);
end;
end;
首要声明SearchRec为一个查找记录,
然后经过FindFirst(ExpandFileName(FileName), faAnyFile, SearchRec)句子来查找
目标文件,找到后设置GetFileSize函数的返回值为
目标文件的巨细SearchRec.Size 。
程序代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls, Mask,Winsock;
type
TfrmMain = class(TForm)
Label1: TLabel;
btnConversion: TButton;
edtName: TEdit;
Label2: TLabel;
edtAddress: TEdit;
procedure btnConversionClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure edtAddressChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
procedure TfrmMain.btnConversionClick(Sender: TObject);
var
WSAData: TWSAData;
HostEnt: PHostEnt;
IPAddress: string;
addr: dword;
begin
edtName.Clear;
WSAStartup(2, WSAData);
IPAddress:=edtAddress.Text;
try
addr := inet_addr(PChar(IPAddress));
HostEnt:= GetHostByAddr(@addr, Length(IPAddress), PF_INET);
edtName.Text:=HostEnt.h_name;
except
ShowMessage('无效的IP地址');
end;
WSACleanup;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
edtAddress.Clear;
edtName.Clear;
btnConversion.Enabled:=False;
end;
procedure TfrmMain.edtAddressChange(Sender: TObject);
begin
btnConversion.Enabled:=True;
if edtAddress.Text='' then
begin
btnConversion.Enabled:=False;
end;
end;
end.
在网络程序的规划过程中,
经常需要依据得到的IP地址
取得主机的称号,本实例将演示怎么依据消费者输入的IP地址获取对应主机的称号 。
向窗体上添加两个TLabel组件、两个TEdit组件和一个TButton组件,规划
完成的主界面如图1所示 。




图1 主界面
在程序运转过程中首要需要向程序的uses段中参加Winsock,这么就
能够调用与Winsock
有关的函数进行操作 。
Attributes和FileName是两个全局变量
。其间Word类型的Attributes变量用于存储文件的特点,而String类型的FileName特点用于存储文件的途径和文件名 。
别的还要在FormCreate过程中添加下列代码:
procedure TfrmMain.btnConversionClick(Sender: TObject);
var
WSAData: TWSAData;
HostEnt: PHostEnt;
IPAddress: string;
addr: dword;
begin
edtName.Clear;
WSAStartup(2, WSAData);
IPAddress:=edtAddress.Text;
try
addr := inet_addr(PChar(IPAddress));
HostEnt:= GetHostByAddr(@addr, Length(IPAddress), PF_INET);
edtName.Text:=HostEnt.h_name;
except
ShowMessage('无效的IP地址');
end;
WSACleanup;
end;
程序运转前期就会履行FormCreate中的代码,首要经过OpenDialog.Execute句子来显现一个
揭示读者
取舍文件的对话框 。假设消费者在该对话框中承认
取舍了一个有用文件后,就把文件途径和文件名等信息存储在变量FileName中,把文件读写特点等信息存储在变量Attributes中 。
然后经过揣度Attributes别离与faReadOnly、faArchive、faSysFile和faHidden常量
对比的
结果,来决议ReadOnly、Archive、System和Hidden4个CheckBox组件的选中状态 。
经过lblPosition.Caption:=lblPosition.Caption+ExtractFileDir(FileName)句子在lblPosition组件中显现文件方位,经过lblName.Caption:=lblName.Caption+ExtractFileName(FileName)句子显现文件名
。终究经过GetFileSize函数和lblSize.Caption:=lblSize.Caption+Format('%d bytes',
[GetFileSize(FileName)])句子来显现文件巨细,GetFileSize函数代码如下:
function TfrmMain.GetFileSize(const FileName: string): LongInt;
var
SearchRec: TSearchRec;
begin
try
if FindFirst(ExpandFileName(FileName), faAnyFile, SearchRec) = 0 then
Result := SearchRec.Size
else Result := -1;
finally
SysUtils.FindClose(SearchRec);
end;
end;
首要声明SearchRec为一个查找记录,
然后经过FindFirst(ExpandFileName(FileName), faAnyFile, SearchRec)句子来查找
目标文件,找到后设置GetFileSize函数的返回值为
目标文件的巨细SearchRec.Size 。
程序代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls, Mask,Winsock;
type
TfrmMain = class(TForm)
Label1: TLabel;
btnConversion: TButton;
edtName: TEdit;
Label2: TLabel;
edtAddress: TEdit;
procedure btnConversionClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure edtAddressChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
procedure TfrmMain.btnConversionClick(Sender: TObject);
var
WSAData: TWSAData;
HostEnt: PHostEnt;
IPAddress: string;
addr: dword;
begin
edtName.Clear;
WSAStartup(2, WSAData);
IPAddress:=edtAddress.Text;
try
addr := inet_addr(PChar(IPAddress));
HostEnt:= GetHostByAddr(@addr, Length(IPAddress), PF_INET);
edtName.Text:=HostEnt.h_name;
except
ShowMessage('无效的IP地址');
end;
WSACleanup;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
edtAddress.Clear;
edtName.Clear;
btnConversion.Enabled:=False;
end;
procedure TfrmMain.edtAddressChange(Sender: TObject);
begin
btnConversion.Enabled:=True;
if edtAddress.Text='' then
begin
btnConversion.Enabled:=False;
end;
end;
end.








优质IT资源分享社区为你提供此文。
本站有大量优质Delphi教程视频,资料等资源,包含Delphi基础教程,高级进阶教程等等,教程视频资源涵盖传智播客,极客学院,达内,北大青鸟,猎豹网校等等IT职业培训机构的培训教学视频,价值巨大。欢迎点击下方链接查看。
Delphi教程视频
优质IT资源分享社区(www.itziyuan.top)
一个免费,自由,开放,共享,平等,互助的优质IT资源分享网站。
专注免费分享各大IT培训机构最新培训教学视频,为你的IT学习助力!

!!!回帖受限制请看点击这里!!!
!!!资源失效请在此版块发帖说明!!!

[PS:按 CTRL+D收藏本站网址~]

——“优质IT资源分享社区”管理员专用签名~

本版相似帖子

游客