六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

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

[摘要]Visual C#是微軟公司推出的下一代程序開發(fā)語言,是微軟.Net 框架中的的一個(gè)重要組成部分,在推出Visual C#的過程中,微軟公司還推出了與之相對(duì)應(yīng)的一個(gè)軟件開發(fā)包--.Net FrameWork SDK。此軟件開發(fā)包里面封裝了許多類、對(duì)象。Visual C#就是通過調(diào)用這些類、對(duì)象來實(shí)...

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

一.概述:
我們知道對(duì)于一臺(tái)計(jì)算機(jī)來說,他只有一個(gè)計(jì)算機(jī)名稱,但是他可以有多個(gè)IP地址。例如當(dāng)計(jì)算機(jī)通過撥號(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地址了。本文就是來探索一下如何讀取此二個(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名稱空間,然后通過調(diào)用Dns類中的GetHostName ( )方法讀取本地計(jì)算機(jī)名稱,具體實(shí)現(xiàn)的主要語句如下:
label1.Text = "主機(jī)名稱:" + System.Net.Dns.GetHostName ( ) ;
(2).讀取計(jì)算機(jī)的撥號(hào)上網(wǎng)臨時(shí)的IP地址和局域網(wǎng)分配的固定IP地址:
在程序設(shè)計(jì)中,我們是通過一個(gè)自定義的函數(shù)--getIPAddress ( )來讀取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)語句如下:
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)過以下編譯命令編譯后,
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)說了,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é):
本文是通過二個(gè)例子來讀出機(jī)器的計(jì)算機(jī)名稱和不同的IP地址,通過以上二個(gè)例子,我們可以看到如果機(jī)器有三個(gè)或者更多的IP地址,我們也可以通過設(shè)定AddressList的不同值來得到機(jī)器不同的IP地址。
在名稱空間System.Net中還提供了很多面向網(wǎng)絡(luò)編程的的類,這些類的功能是十分巨大的,靈活運(yùn)用這些類,可以開發(fā)出很多功能強(qiáng)大的網(wǎng)絡(luò)應(yīng)用程序。




主站蜘蛛池模板: 色小妹综合| 日韩欧美视频在线播放 | 偷拍免费视频 | 日日射视频 | 亚洲国产欧美在线人成 | 五月开心六月伊人色婷婷 | 午夜影院在线免费 | 亚洲国产精品成人午夜在线观看 | 她也啪97在线视频 | 亚洲免费网站在线观看 | 日本视频免费观看 | 天天射日日操 | 无码日韩精品一区二区免费 | 一区二区三区福利 | 日韩精品一区二三区中文 | 偷窥自拍区| 天天艹天天射 | 日韩一级黄色 | 青青草原在线视频免费观看 | 一级做a爰片久久免费 | 日本免费一区二区三区视频 | 日本亚州视频在线八a | 在线视频自拍 | 青青久视频 | 色婷婷丁香六月 | 亚洲成人网在线播放 | 欧美午夜色大片在线观看免费 | 亚洲精品国产福利 | 日韩成人影片 | 午夜老司机免费视频 | 日韩在线二区 | 日韩黄色网 | 欧美亚洲国产成人不卡 | 污污在线观看视频 | 午夜高清在线观看免费6 | 四虎必出精品亚洲高清 | 亚洲欧美韩日 | 台湾中文娱乐综合久久久 | 图片区小说区欧洲区 | 日本乱人伦片中文字幕三区 | 日本一区二区三区在线 视频观看免费 |