c 網路程式設計之 DNS程式設計

2021-03-31 08:56:57 字數 3237 閱讀 3500

system.***

命名空間包含了

dns類,它可以提供了編寫

dns所需要的函式。下面講解

dns類的一些方法以及在

c#中如何利用該類編寫程式。

一、

同步方法

在dns

類中定義了四個同步方法:

gethostname()

、gethostbyname()

、gethostbyaddress()

、resolve()

。下面分別講解。

1public static string gethostname();

功能:獲取本地計算機的主機名。

返回值:字串,包含本地計算機的dns 主機名。

2、

public static iphostentry gethostbyname(string hostname)

功能:獲取指定dns 主機名的 dns 資訊。

引數:包含主機的dns 名的字串

using system;

using system.***;

class getdnshostinfo

iphostentry results = dns.gethostbyname(argv[0]);

console.writeline("host name: ",results.hostname);

foreach(string alias in results.aliases)

", alias);

}

foreach(ipaddress address in results.addresslist)

", address.tostring());

}

}

}

注:iphostentry(為 inter*** 主機位址資訊提供容器類)屬性介紹:

addresslist:獲取或設定與主機關聯的 ip 位址列表。

aliases:獲取或設定與主機關聯的別名列表。

hostname:獲取或設定主機的 dns 名稱。

3gethostbyaddress()

功能:獲取ip 位址的 dns 主機資訊。

public static iphostentry gethostbyaddress(ipaddress);

public static iphostentry gethostbyaddress(string);

using system;

using system.***;

class getdnsaddressinfo

ipaddress test = ipaddress.parse(argv[0]);

iphostentry iphe = dns.gethostbyaddress(test);

console.writeline("information for ", test.tostring());

console.writeline("host name: ", iphe.hostname);

foreach(string alias in iphe.aliases)

", alias);

}

foreach(ipaddress address in iphe.addresslist)

", address.tostring());

} }

}

注:ipaddress,提供網際協議 (ip) 位址。

4public static iphostentry resolve(string hostname)
功能:將dns 主機名或 ip 位址解析為 iphostentry 例項。

引數:dns 樣式的主機名或 ip 位址。

備註:resolve 方法在 dns 伺服器中查詢與主機名或 ip 位址相關聯的 ip 位址。當 hostname 是 dns 樣式的主機名並且與多個 ip 位址關聯時,僅返回解析為該主機名的第乙個 ip 位址。

using system;

using system.***;

class getresolveinfo

iphostentry iphe = dns.resolve(argv[0]);

console.writeline("information for ", argv[0]);

console.writeline("host name: ", iphe.hostname);

foreach(string alias in iphe.aliases)

", alias);

}

foreach(ipaddress address in iphe.addresslist)

",address.tostring());

} }

}

二、非同步方法 在

dns中定義了四個非同步方法

: begingethostbyname()

、beginresolve()

、endgethostbyname()

、endresolve()

使用範例:

using system;

using system.drawing;

using system.***;

using system.text;

using system.windows.forms;

class asyncresolveform:

void buttonresolveonclick(object obj, eventargs ea)

private void

resolved

(iasyncresult ar)

foreach(ipaddress addrs in iphe.addresslist)

}

public static void main()

}

C 網路程式設計之TCP UDP

網路位元組順序 tcp ip 採用16 32 位高位先存格式 tcp ip 網路應用中,通訊的兩個程序主要採用 c s模式。伺服器要先啟動,並根據請求提供相應的服務 1 開啟乙個通訊通道訂告知本地主機,它願意在某一位址和埠上接受客戶請求 2 等待客戶請求到達該埠 3 接受到重複服務請求,處理該請求並...

c 網路程式設計之socket

該函式接收三個引數。第乙個引數af指定位址族,對於tcp ip協議的套接字,它只能是af inet 也可寫成pf inet 第二個引數指定socket型別,對於1.1版本的socket,它只支援兩種型別的套接字,sock stream指定產生流式套接字,sock dgram產生資料報套接字。如果這個...

C 網路程式設計之TCP UDP

最近因為需要用到網路程式設計的知識點,看了這篇部落格,感覺非常有用,對tcp udp描述的很通熟易懂 基於tcp協議的socket通訊類似於b s架構,面向連線,但不同的是伺服器端可以向客戶端主動推送訊息。使用tcp協議通訊需要具備以下幾個條件 1 建立乙個套接字 socket 2 繫結伺服器端ip...