获得计算机名称(HostName)和IP地址(Addresses)以及主机地址信息(IPHostEntry)
Visual C#是微软公司推出的下一代程序开发语言,是微软.Net 框架中的的一个重要组成部分,在推出Visual C#的过程中,微软公司还推出了与之相对应的一个软件开发包--.Net FrameWork SDK。此软件开发包里面封装了许多类、对象。Visual C#就是通过调用这些类、对象来实现许多比较强大的功能。
在.Net FrameWork SDK中提供了二个可用于网络编程的名称空间,一个是System.Net,另一个是System..Net.Socket。本文就是利用第一个名称空间中封装的类和对象来读取本地计算机名称和机器中所有的IP地址。
首先要了解Dns类,Dns类是一个静态类,它从Internet域名系统 (DNS) 检索关于特定主机的信息。在IPHostEntry类的实例中返回来自DNS查询的主机信息。如果指定的主机在DNS数据库中有多个入口,则IPHostEntry包含多个IP地址和别名。Dns类的主要成员函数为GetHostName,GetHostAddresses,GetHostEntry,GetHostByName,GetHostByAddress。分别可取得计算机名称,IP地址和地址信息。
IPHostEntry类则为Internet主机地址信息提供容器类。他有三个公共属性:AddressList(获取或设置与主机关联的 IP 地址列表),Aliases(获取或设置与主机关联的别名列表),HostName(获取或设置主机的 DNS 名称)
一、概述:
我们知道对于一台计算机来说,他只有一个计算机名称,但是他可以有多个IP地址和别名。例如当计算机通过拨号上网的时候,在验证完用户名和口令以后,就会动态分配一个IP地址,此时计算机就拥有了二个IP地址,一个是自己设定的局域网用的IP地址,另外一个就是拨号上网动态分配的IP地址了。本文就是来探索一下如何读取此二个IP地址和计算机名称。
二、程序设计的主要思路及实现方法:
using System.Net;
// 读取计算机的名称
string name = System.Net.Dns.GetHostName( );
// 获得本机局域网IP地址
IPAddress localAddress = Dns.GetHostAddresses(name)[0].ToString();
// 获得拨号动态分配IP地址
IPAddress dynAddress = Dns.GetHostAddresses(name)[1].ToString();
也可用一下语句获取IP地址
IPAddress localAddress = Dns.GetHostByName(name).AddressList[0];
IPAddress dynAddress = Dns.GetHostByName(name).AddressList[1];
三、总结:
本文是通过二个例子来读出机器的计算机名称和不同的IP地址,通过以上二个例子,我们可以看到如果机器有三个或者更多的IP地址,我们也可以通过同样方法获取。
在名称空间System.Net中还提供了很多面向网络编程的的类,这些类的功能是十分巨大的,灵活运用这些类,可以开发出很多功能强大的网络应用程序。
浙公网安备 33010602011771号