--------------------------------------------------------------------------------
目錄
1.使用的類
2.獲取本地主機IP地址
3.遠程查詢
4.實現網段的掃描
--------------------------------------------------------------------------------
正文
1.先介紹壹下使用的類:
DNS類:在.net中的System.net命名空間下,主要的功能是從 Internet 域名系統 (DNS) 檢索關於特定主機的信息。
IPHostEntry類:將壹個域名系統 (DNS) 主機與壹組別名和壹組匹配的 IP 地址關聯,和DNS類壹起使用。
IPAddress 類:IP 網絡上的地址。
使用的命名空間有:
System.Net 命名空間為當前網絡上使用的多種協議提供了簡單的編程接口.
System.IO命名空間包含允許在數據流和文件上進行同步和異步讀取及寫入的類型。
System.Thread 命名空間主要是用來多線程序編程。
程序實現以下幾個功能:
2.獲取本地主機IP地址
//對Button控件的事件的響應
private void buttion1_click(object sender,System.Event.Args e)
[
IPHostEntry myHost = new IPHostEntry();
Try
[
// Dns.GetHostName()獲取本地計算機的主機名
// Dns.GetHostByName()獲取指定 DNS 主機名的 DNS 信息
//得到本地主機的DNS信息
myHost = Dns.GetHostByName(Dns.GetHostName());
//顯示本地主機名
textBox1.Text = myHost.HostName.ToString();
//顯示本地主機的IP地址表
for(int i=0; i<myHost.AddressList.length;i++)
[
richTextBox1.AppendText(“本地主機IP地址->”+myHost.AddressList[i].ToString()+”\r”);
]
catch(Exception error)
[
MessageBox.Show(error.Message);
]
]//private
3.遠程查詢
private void buttion2_click(object Sender,System.EventArgs e)
[
IPHostEntry myDnsToIP = new IPHostEntry();
//Dns.Resolve 方法: 將 DNS 主機名或以點分隔的四部分表示法格式的 // IP 地址解析為 IPHostEntry實例
myDnsToIP =Dns.Resolve(textBox2.Text.ToString());
//顯示此域名的IP地址的列表
for(int i=0;i<myDnsToIPAddressList.Length;i++)
[
rich.TextBox1.AppendText(textBox2.Text+”的IP地址是”+myDnsToIP.AddressList[i].ToString()+”\r”);
]
]
4.實現網段的掃描
實現網段的掃描,確定網絡中正在使用的主機數目。這裏使用了多線程技術,增加了壹個線程,為了防止程序掃描的時間過長,影響程序的響應。不過在.net中由於使用了垃圾收集技術所以對線程的控制也不是很復雜的。
private void button3_click(object sender, System.EventArgs e)
[
//Thread 類: 創建並控制線程
Thread thScan = new thread(new ThreadStrart(ScanTarget));
//Thread.Start 方法:啟動線程
thScan.Strart();
]
private void ScanTarget()
[
//構造IP地址的31-8BIT 位,也就是固定的IP地址的前段
// numericUpDown1是定義的System.Windows.forms.NumericUpDown控件
string strIPAddress=numericUpDown1.Text+”.”+numericUpDown2.Text+”.”+numericUpDown3.Text+”.”;
//開始掃描地址
int nStrat = Int32.Parse(numericUpDown4.Text);
//終止掃描地址
int nEnd =Int32.Parse(numericUpDown5.Text);
//掃描的操作
for(int i=nStrat;i<=nEnd;i++)
[
string strScanIPAdd = strIPAddress +i.ToString();
//轉換成IP地址
IPAddress myScanIP = IPAddress.Parse(strScanIPAdd);
try
[
//妳可以加入自已的,增強功能
// Dns.GetHostByAddress 方法: 根據 IP 地
//址獲取 DNS 主機信息。
IPHostEntry myScanHost =
Dns.GetHostByAddress(myScanIP);
//獲取主機的名
string strHostName =myScanHost.HostName.ToString();
richTextBox1.AppendText(strScanIPAdd+”->”+strHostName+”\r”);
]
catch(Exception error)
[
MessageBox.Show(error.Message);
]
]//for
]//private
到此為止壹個簡單用C#實現掃描器的主要功能就完成了:).