用visual c#获得电脑名称和ip地址_c#应用

2008-02-23 05:46:39来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

Visual C#是微软公司推出的下一代程式研发语言,是微软.Net 框架中的的一个重要组成部分,在推出Visual C#的过程中,微软公司还推出了和之相对应的一个软件研发包--.Net FrameWork SDK。此软件研发包里面封装了许多类、对象。Visual C#就是通过调用这些类、对象来实现许多比较强大的功能。
在.Net FrameWork SDK中提供了二个可用于网络编程的名称空间,一个是System.Net,另一个是System..Net.Socket。本文就是利用第一个名称空间中封装的类和对象来读取本地电脑名称和机器中任何的IP地址。

一.概述:
我们知道对于一台电脑来说,他只有一个电脑名称,但是他能够有多个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 ( ) ;
}
}


在经过以下编译命令编译后,
csc /r:system.dll /r:system.windows.forms.dll /r:system.drawing.dll /t:winexeip01.cs
得到ip01.exe文档,此文档就能够读取本地固定的IP地址。以下是执行后的界面:

图01:读取电脑名称和固定IP地址

五.读取电脑名称和拨号上网动态分配的IP地址源程式
在前面已说了,GetHostByName ( )方法的返回值时IPHostEntry 对象,此对象的属性 AddressList,是个IPAddress类型的数组,包含了电脑此时的任何的IP地址信息。在ip01.cs中AddressList [0].Address是固定的IP地址,而对于上网动态分配的IP地址是.AddressList [1].Address。据此我们能够的得到读取拨号上网动态分配的IP地址的源程式:
IP02.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 ( )

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 用visual c#中轻松浏览数据库记录_c#应用

下一篇: 用visual c#来删除注册表中的注册信息_c#应用