- 作者:zhaozj
- 发表时间:2020-12-23 10:53
- 来源:未知
一.概述: 我们知道对于一台计算机来说,他只有一个计算机名称,但是他可以有多个IP地址。例如当计算机通过拨号上网的时候,在验证完用户名和口令以后,就会动态分配一个IP地址,此时计算机就拥有了二个IP地址,一个时自己设定的局域网用的IP地址,另外一个就是拨号上网动态分配的IP地址了。本文就是来探索一下如何读取此二个IP地址和计算机名称。 二.程序设计和运行的环境: (1)微软公司视窗2000服务器版 (2).Net FrameWrok SDK Beta 2版 三.程序设计的主要思路及实现方法: (1).读取计算机的名称: 在名称空间System.Net中定义了一个类Dns,在此类中定义了一个比较重要的方法 GetHostName ( ),此方法的返回值就是本地计算机名称。在程序设计中首先要导入System.Net名称空间,然后通过调用Dns类中的GetHostName ( )方法读取本地计算机名称,具体实现的主要语句如下: label1.Text = "主机名称:" + System.Net.Dns.GetHostName ( ) ; (2).读取计算机的拨号上网临时的IP地址和局域网分配的固定IP地址: 在程序设计中,我们是通过一个自定义的函数--getIPAddress ( )来读取IP地址的。首先看一下如何读取本地固定的IP地址的。在Dns类中还定义了一个方法GetHostByName ( )。此方法的返回值时IPHostEntry 对象,此对象有一个属性是AddressList,此属性是一个IPAddress类型的数组,包含了计算机此时的所有的IP地址信息。这当中也就包含了拨号上网得到的临时分配的IP地址和局域网固定的IP地址。具体实现语句如下: private static string getIPAddress ( ) { System.Net.IPAddress addr; // 获得本机局域网IP地址 addr = new System.Net.IPAddress ( Dns.GetHostByName ( Dns.GetHostName ( ) ) .AddressList [0].Address ) ; return addr.ToString ( ) ; } 四.读取计算机名称本机固定IP地址源程序 IP01.cs源程序: //导入程序用到的名称空间 using System ; using System.Net; using System.Windows.Forms ; using System.Drawing ; public class Form3 : Form { //定义二个标签 private Label label1 ; private Label label2 ; public static void Main ( ) { Application.Run ( new Form3 ( ) ) ; } // 构造窗体 public Form3 ( ) { // 建立标签并且初始化 this.label1 = new System.Windows.Forms.Label ( ) ; this.label2 = new System.Windows.Forms.Label ( ) ; //先继承一个Label 类 label1.Location = new System.Drawing.Point ( 24 , 16 ) ; label2.Location = new System.Drawing.Point ( 44 , 36 ) ; //设定 Label的显示位置 label1.Text = "主机名称:" + System.Net.Dns.GetHostName ( ) ; // 显示本机的计算机名称 label2.Text = "IP 地址:" + getIPAddress ( ) ; // 显示本机的局域网IP地址 label1.Size = new System.Drawing.Size ( 200 , 50 ) ; label2.Size = new System.Drawing.Size ( 200 , 80 ) ; //设定标签的大小 label1.TabIndex = 0 ; label2.TabIndex = 1 ; label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ; label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ; // 设定标签的对齐方式 this.Text = "获得主机名称和IP地址!" ; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent ; this.AutoScaleBaseSize = new System.Drawing.Size ( 8 , 16 ) ; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D ; // 设定窗体的边界类型 this.ForeColor = System.Drawing.SystemColors.Desktop ; this.Font = new System.Drawing.Font ( "宋体" , 10 , System.Drawing.FontStyle.Bold ) ; // 设定字体、大小就字体的式样 this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide ; this.ClientSize = new System.Drawing.Size ( 250 , 250 ) ; //把标签加到窗体中 this.Controls.Add ( this.label1 ) ; this.Controls.Add ( this.label2 ) ; } private static string getIPAddress ( ) { System.Net.IPAddress addr; // 获得本机局域网IP地址 addr = new System.Net.IPAddress ( Dns.GetHostByName ( Dns.GetHostName ( ) ) .AddressList [0].Address ) ; return addr.ToString ( ) ; } } |