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

在网络程序的设计过程中,经常需要根据得到的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;

时间: 2024-10-06 14:08:53

Delphi编程根据IP地址得到主机名的相关文章

Delphi中根据IP地址得到主机名

本实例演示如何利用TUdpSocket组件获取IP地址和主机名. 向窗体上添加一个TUdpSocket组件,如图1所示. 图1 主界面 TUdpSocket组件中有两个属性--LocalHostName和LocalHostAddr,其中分别存储了本地计算机的主机名和IP地址,所以在窗体的初始化中添加如下响应代码来显示主机名和IP地址: procedure TForm1.FormCreate(Sender: TObject); begin self.Caption:=UdpSocket1.Loca

总结有关IP地址、主机名及MAC三者之间的联系

相信很多做网络的兄弟,也和烂泥一样经常碰到由IP地址查找主机名等等之类的问题,那么今天我就此类问题做一个总结. 首先在此声明,我这个总结全部是基于windows自身的网络工具进行操作的,不使用第三方软件的.先看我手工绘制的这三者之间的关系,如下图: 一.知道主机名,查看IP地址及MAC地址 Ping 主机名 我们可以得到IP地址,然后我们IP地址可以得到MAC地址具体命令如下: Ping 主机名→IP地址 Nbtstat –A IP地址→MAC地址 二.知道IP地址,查看主机名及MAC地址 Pi

java.net.InetAddress类的getHostName方法用来获取某一IP地址的主机名

问题描述 有没有不通过java.net.InetAddress类的getHostName方法用来获取某一IP地址的主机名的方法,而且速度较快的方法:当然要用Java写. 解决方案

使KVM显示VM的IP地址及主机名

KVM虚拟化学习已经有一段时间了,现在虚拟化软件比较多,对比了下目前使用比较多的VMware Vsphere.发现在不进入VM系统的情况下,Vsphere可以查看VM的IP地址,.如下: 同时你也会发现,Vsphere只能查看VM的IP地址,不能查看其他的信息.如果要查看的话,只能登录到VM系统中查看.而且要查看VM的IP地址的话,我们还需要在VM的系统中安装好vmtools这个软件包. 当然,我们也可以通过描述来解决查看虚拟机的相关情况.如下: 此时再来对比KVM中的VM我们会发现,KVM不能

Java根据ip地址获得机器名速度慢的原因?

问题描述 我在做登录的时候作了个记录客户端的登录机器名和ip,但是有的时候登录特别慢,我跟踪了下代码,发现慢的地方在根据IP地址获得机器名这段代码.但是我查了好久没有找到原因,请高手们指点一下.下面是我的代码:第一个方法获得IP地址,第二个方法是通过上面获得IP得到机器名.privatestaticStringgetClientIpAddr(HttpServletRequestrequest){//分不同的特殊情况获取用户客户端ip地址Stringip=request.getHeader("X-

win7通过ip地址查找计算机名的两种方法

  win7通过ip地址查找计算机名的两种方法           解决方法一: 1.通过"开始"菜单,输入cmd,进入到类Dos页面.(也可以通过快捷键:Windows徽标键+R,然后输入cmd,进入到类Dos页面); 2.然后,在该页面,输入ipconfig,然后点击回测键; 3.最后,出现如图所示的页面,从其中的信息即可知道,该电脑的IP地址为192.168.1.123(局域网IP地址). 解决方法二: 1.首先,通过"开始"菜单,输入cmd,进入到类Dos页

c# 线程池-C# 多线程 Ping 几千个 IP地址 测试 主机可达测试 线程池

问题描述 C# 多线程 Ping 几千个 IP地址 测试 主机可达测试 线程池 //有什么办法可以做到在多线程环境下测试数据准确,大能帮忙看看问题出在什么地方,有什么解决方案...以下程序可运行 解决方案 1.最好别使用线程来实现,开销实在是太大了. 2.可以这么考虑,先只管发,即向每个ip地址发送1个icmp请求报文,然后就开始接收所有的icmp应答报文. 解决方案二: 考虑使用raw socket,把所有的icmp报文都收上来,然后再过滤. 解决方案三: 是否是多线程情况下,icmp请求过多

wi-fi-ios:有没有办法,在APP内实现:连接某一个WIFI后,搜索,获取本网络所有的在线的IP地址和网络名

问题描述 ios:有没有办法,在APP内实现:连接某一个WIFI后,搜索,获取本网络所有的在线的IP地址和网络名 有没有办法,在APP内实现:连接某一个WIFI后,搜索并获取本网络所有的在线的机器的IP地址和机器名,最近在做一个远程控制的项目,不知道大神们能不能给点经验. 解决方案 alert(1); 解决方案二: 应该是可以的,之前看到有个APP,可以看到当前WiFi连接的设备,跟防蹭网有关的 解决方案三: 如果暴力搜索的话,就是判断一个ip地址是否可通你也要256个很耗时间的

怎么取得工作站的ip地址或电脑名?

问题描述 使用Notes公式或LS怎么取得工作站的ip地址或电脑名? 解决方案 解决方案二:如果是客户端,可能通过api来完成了.如果是bs方式的,可以通过cgi域来完成,只能取得IP,电脑名,好象没有参数.