人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開(kāi)發(fā)教程 > 詳細(xì)頁(yè)面

用Visual C#獲得計(jì)算機(jī)名稱與IP地址

用Visual C#獲得計(jì)算機(jī)名稱與IP地址

更新時(shí)間:2022-08-04 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

Visual C#是微軟公司推出的下一代程序開(kāi)發(fā)語(yǔ)言,是微軟.Net 框架中的的一個(gè)重要組成部分,在推出Visual C#的過(guò)程中,微軟公司還推出了與之相對(duì)應(yīng)的一個(gè)軟件開(kāi)發(fā)包--.Net FrameWork SDK。此軟件開(kāi)發(fā)包里面封裝了許多類、對(duì)象。Visual C#就是通過(guò)調(diào)用這些類、對(duì)象來(lái)實(shí)現(xiàn)許多比較強(qiáng)大的功能。
在.Net FrameWork SDK中提供了二個(gè)可用于網(wǎng)絡(luò)編程的名稱空間,一個(gè)是System.Net,另一個(gè)是System..Net.Socket。本文就是利用第一個(gè)名稱空間中封裝的類和對(duì)象來(lái)讀取本地計(jì)算機(jī)名稱和機(jī)器中所有的IP地址。

一.概述:
我們知道對(duì)于一臺(tái)計(jì)算機(jī)來(lái)說(shuō),他只有一個(gè)計(jì)算機(jī)名稱,但是他可以有多個(gè)IP地址。例如當(dāng)計(jì)算機(jī)通過(guò)撥號(hào)上網(wǎng)的時(shí)候,在驗(yàn)證完用戶名和口令以后,就會(huì)動(dòng)態(tài)分配一個(gè)IP地址,此時(shí)計(jì)算機(jī)就擁有了二個(gè)IP地址,一個(gè)時(shí)自己設(shè)定的局域網(wǎng)用的IP地址,另外一個(gè)就是撥號(hào)上網(wǎng)動(dòng)態(tài)分配的IP地址了。本文就是來(lái)探索一下如何讀取此二個(gè)IP地址和計(jì)算機(jī)名稱。

二.程序設(shè)計(jì)和運(yùn)行的環(huán)境:
(1)微軟公司視窗2000服務(wù)器版
(2).Net FrameWrok SDK Beta 2版

三.程序設(shè)計(jì)的主要思路及實(shí)現(xiàn)方法:
(1).讀取計(jì)算機(jī)的名稱:
在名稱空間System.Net中定義了一個(gè)類Dns,在此類中定義了一個(gè)比較重要的方法 GetHostName ( ),此方法的返回值就是本地計(jì)算機(jī)名稱。在程序設(shè)計(jì)中首先要導(dǎo)入System.Net名稱空間,然后通過(guò)調(diào)用Dns類中的GetHostName ( )方法讀取本地計(jì)算機(jī)名稱,具體實(shí)現(xiàn)的主要語(yǔ)句如下:
label1.Text = "主機(jī)名稱:" + System.Net.Dns.GetHostName ( ) ;
(2).讀取計(jì)算機(jī)的撥號(hào)上網(wǎng)臨時(shí)的IP地址和局域網(wǎng)分配的固定IP地址:
在程序設(shè)計(jì)中,我們是通過(guò)一個(gè)自定義的函數(shù)--getIPAddress ( )來(lái)讀取IP地址的。首先看一下如何讀取本地固定的IP地址的。在Dns類中還定義了一個(gè)方法GetHostByName ( )。此方法的返回值時(shí)IPHostEntry 對(duì)象,此對(duì)象有一個(gè)屬性是AddressList,此屬性是一個(gè)IPAddress類型的數(shù)組,包含了計(jì)算機(jī)此時(shí)的所有的IP地址信息。這當(dāng)中也就包含了撥號(hào)上網(wǎng)得到的臨時(shí)分配的IP地址和局域網(wǎng)固定的IP地址。具體實(shí)現(xiàn)語(yǔ)句如下:
private static string getIPAddress ( )
{
System.Net.IPAddress addr;
// 獲得本機(jī)局域網(wǎng)IP地址
addr = new System.Net.IPAddress ( Dns.GetHostByName ( Dns.GetHostName ( ) ) .AddressList [0].Address ) ;
return addr.ToString ( ) ;
}

四.讀取計(jì)算機(jī)名稱本機(jī)固定IP地址源程序
IP01.cs源程序:
//導(dǎo)入程序用到的名稱空間
using System ;
using System.Net;
using System.Windows.Forms ;
using System.Drawing ;
public class Form3 : Form
{
//定義二個(gè)標(biāo)簽
private Label label1 ;
private Label label2 ;
public static void Main ( )
{
Application.Run ( new Form3 ( ) ) ;
}
// 構(gòu)造窗體
public Form3 ( )
{
// 建立標(biāo)簽并且初始化
this.label1 = new System.Windows.Forms.Label ( ) ;
this.label2 = new System.Windows.Forms.Label ( ) ;
//先繼承一個(gè)Label 類
label1.Location = new System.Drawing.Point ( 24 , 16 ) ;
label2.Location = new System.Drawing.Point ( 44 , 36 ) ;
//設(shè)定 Label的顯示位置
label1.Text = "主機(jī)名稱:" + System.Net.Dns.GetHostName ( ) ;
// 顯示本機(jī)的計(jì)算機(jī)名稱
label2.Text = "IP 地址:" + getIPAddress ( ) ;
// 顯示本機(jī)的局域網(wǎng)IP地址
label1.Size = new System.Drawing.Size ( 200 , 50 ) ;
label2.Size = new System.Drawing.Size ( 200 , 80 ) ;
//設(shè)定標(biāo)簽的大小
label1.TabIndex = 0 ;
label2.TabIndex = 1 ;
label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ;
label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ;
// 設(shè)定標(biāo)簽的對(duì)齊方式
this.Text = "獲得主機(jī)名稱和IP地址!" ;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent ;
this.AutoScaleBaseSize = new System.Drawing.Size ( 8 , 16 ) ;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D ;
// 設(shè)定窗體的邊界類型
this.ForeColor = System.Drawing.SystemColors.Desktop ;
this.Font = new System.Drawing.Font ( "宋體" , 10 , System.Drawing.FontStyle.Bold ) ;
// 設(shè)定字體、大小就字體的式樣
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide ;
this.ClientSize = new System.Drawing.Size ( 250 , 250 ) ;
//把標(biāo)簽加到窗體中
this.Controls.Add ( this.label1 ) ;
this.Controls.Add ( this.label2 ) ;
}
private static string getIPAddress ( )
{
System.Net.IPAddress addr;
// 獲得本機(jī)局域網(wǎng)IP地址
addr = new System.Net.IPAddress ( Dns.GetHostByName ( Dns.GetHostName ( ) ) .AddressList [0].Address ) ;
return addr.ToString ( ) ;
}
}


在經(jīng)過(guò)以下編譯命令編譯后,
csc /r:system.dll /r:system.windows.forms.dll /r:system.drawing.dll /t:winexeip01.cs
得到ip01.exe文件,此文件就可以讀取本地固定的IP地址。以下是執(zhí)行后的界面:

圖01:讀取計(jì)算機(jī)名稱和固定IP地址

五.讀取計(jì)算機(jī)名稱和撥號(hào)上網(wǎng)動(dòng)態(tài)分配的IP地址源程序
在前面已經(jīng)說(shuō)了,GetHostByName ( )方法的返回值時(shí)IPHostEntry 對(duì)象,此對(duì)象的屬性 AddressList,是一個(gè)IPAddress類型的數(shù)組,包含了計(jì)算機(jī)此時(shí)的所有的IP地址信息。在ip01.cs中AddressList [0].Address是固定的IP地址,而對(duì)于上網(wǎng)動(dòng)態(tài)分配的IP地址是.AddressList [1].Address。據(jù)此我們可以的得到讀取撥號(hào)上網(wǎng)動(dòng)態(tài)分配的IP地址的源程序:
IP02.cs源程序:
//導(dǎo)入程序用到的名稱空間
using System ;
using System.Net;
using System.Windows.Forms ;
using System.Drawing ;
public class Form3 : Form
{
//定義二個(gè)標(biāo)簽
private Label label1 ;
private Label label2 ;
public static void Main ( )
{
Application.Run ( new Form3 ( ) ) ;
}
// 構(gòu)造窗體
public Form3 ( )
{
// 建立標(biāo)簽并且初始化
this.label1 = new System.Windows.Forms.Label ( ) ;
this.label2 = new System.Windows.Forms.Label ( ) ;
//先繼承一個(gè)Label 類
label1.Location = new System.Drawing.Point ( 24 , 16 ) ;
label2.Location = new System.Drawing.Point ( 44 , 36 ) ;
//設(shè)定 Label的顯示位置
label1.Text = "主機(jī)名稱:" + System.Net.Dns.GetHostName ( ) ;
// 顯示本機(jī)的計(jì)算機(jī)名稱
label2.Text = "IP 地址:" + getIPAddress ( ) ;
// 顯示本機(jī)的撥號(hào)動(dòng)態(tài)分配IP地址
label1.Size = new System.Drawing.Size ( 200 , 50 ) ;
label2.Size = new System.Drawing.Size ( 200 , 80 ) ;
//設(shè)定標(biāo)簽的大小
label1.TabIndex = 0 ;
label2.TabIndex = 1 ;
label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ;
label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ;
// 設(shè)定標(biāo)簽的對(duì)齊方式
this.Text = "獲得主機(jī)名稱和IP地址!" ;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent ;
this.AutoScaleBaseSize = new System.Drawing.Size ( 8 , 16 ) ;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D ;
// 設(shè)定窗體的邊界類型
this.ForeColor = System.Drawing.SystemColors.Desktop ;
this.Font = new System.Drawing.Font ( "宋體" , 10 , System.Drawing.FontStyle.Bold ) ;
// 設(shè)定字體、大小就字體的式樣
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide ;
this.ClientSize = new System.Drawing.Size ( 250 , 250 ) ;
//把標(biāo)簽加到窗體中
this.Controls.Add ( this.label1 ) ;
this.Controls.Add ( this.label2 ) ;
}
private static string getIPAddress ( )
{
System.Net.IPAddress addr;
// 獲得撥號(hào)動(dòng)態(tài)分配IP地址
addr = new System.Net.IPAddress ( Dns.GetHostByName ( Dns.GetHostName ( ) ) .AddressList [1].Address ) ;
return addr.ToString ( ) ;
}
}

編譯完成后,執(zhí)行可得到如下運(yùn)行界面:

圖02:讀取計(jì)算機(jī)名稱和動(dòng)態(tài)IP地址

六.總結(jié):
本文是通過(guò)二個(gè)例子來(lái)讀出機(jī)器的計(jì)算機(jī)名稱和不同的IP地址,通過(guò)以上二個(gè)例子,我們可以看到如果機(jī)器有三個(gè)或者更多的IP地址,我們也可以通過(guò)設(shè)定AddressList的不同值來(lái)得到機(jī)器不同的IP地址。
在名稱空間System.Net中還提供了很多面向網(wǎng)絡(luò)編程的的類,這些類的功能是十分巨大的,靈活運(yùn)用這些類,可以開(kāi)發(fā)出很多功能強(qiáng)大的網(wǎng)絡(luò)應(yīng)用程序。

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 岳阳县| 夏津县| 蒙自县| 武邑县| 任丘市| 长宁县| 固镇县| 青海省| 长岛县| 班玛县| 砚山县| 河北区| 延边| 辽中县| 中西区| 新宾| 沧州市| 濮阳县| 吉水县| 大宁县| 九龙城区| 上犹县| 库伦旗| 江津市| 丰镇市| 南充市| 清徐县| 闸北区| 花莲市| 诸暨市| 陕西省| 五原县| 石景山区| 昌乐县| 象山县| 磐安县| 丰镇市| 大城县| 米易县| 扶沟县| 张家界市|