Một số namespace, class về Networking
System.Net
System.Net.Mail
System.Net.NetworkInformation
System.Net.Http
- Làm việc với máy chủ Dns, Uri, địa chỉ mạng có các lớp
Dns
,Uri
,Cookie
,IPAddress
... - Làm việc với FTP Server có các lớp
FtpStatusCode
,FtpWebRequest
,FtpWebResponse
... - Làm việc với giao thức HTTP (máy chủ web) có các lớp như:
HttpStatusCode
,HttpWebRequest
,HttpWebResponse
,HttpClient
,HttpMethod
,HttpRequestMessage
,HttpResponseMessage
- Làm việc với máy chủ SMTP gửi email:
SmtpClient
,MailMessage
,MailAddress
,MailAddress
- Làm việc với giao thức mạng:
IPStatus
,NetworkChange
,Ping
,TcpStatistics
...
Lớp Uri
System.Uri là lớp biểu diễn về địa chỉ URI (URL) (xem thêm Tìm hiểu URI, URL), nó giúp cho nhanh chóng lấy thông tin các thành phần của URL như host, path, query ... Đối tượng Uri còn sử dụng trong tham số để thực hiện các truy vấn HTTP Request ở các phần sau.
Ví dụ, hiện thị các thuộc tính - giá trị thuộc tính của Uri
string url = "https://xuanthulab.net/lap-trinh/csharp/?page=3#acff"; var uri = new Uri(url); var uritype = typeof(Uri); uritype.GetProperties().ToList().ForEach(property => { Console.WriteLine($"{property.Name, 15} {property.GetValue(uri)}"); }); Console.WriteLine($"Segments: {string.Join(",", uri.Segments)}"); // KET QUA // AbsolutePath /lap-trinh/csharp/ // AbsoluteUri https://xuanthulab.net/lap-trinh/csharp/?page=3#acff // LocalPath /lap-trinh/csharp/ // Authority xuanthulab.net // HostNameType Dns // IsDefaultPort True // IsFile False // IsLoopback False // PathAndQuery /lap-trinh/csharp/?page=3 // Segments System.String[] // IsUnc False // Host xuanthulab.net // Port 443 // Query ?page=3 // Fragment #acff // Scheme https // OriginalString https://xuanthulab.net/lap-trinh/csharp/?page=3#acff // DnsSafeHost xuanthulab.net // IdnHost xuanthulab.net // IsAbsoluteUri True // UserEscaped False // UserInfo // Segments: /,lap-trinh/,csharp/
Lớp tĩnh Dns và lớp IPHostEntry
Lớp Dns (System.Net.Dns) cung cấp các phương thức tính để lấy thông tin
về host (địa chỉ website, server cung cấp các dịch vụ mạng) từ hệ thống phân giải tên miền (Dns).
Các thông tin truy vấn được nó trả về một đối tượng giao diện IPHostEntry
DNS là hệ thống phân giải tên miền, giúp cho các trình client (như các trình duyệt) truy vấn để chuyển đổi một tên miền (như xuanthulab.net) sang địa chỉ IP vật lý tương ứng của tên miên đó. Sau đó địa chỉ IP này được dùng để kết nối client/server. Dữ liệu DNS được lưu trữ và phục vụ truy vấn từ các Server DNS được vận hành bởi các nhà cung cấp dịch vụ và các tổ chức
Một số phương thức của lớp Dns | |
GetHostName() |
Lấy hostname của máy local |
GetHostEntry(String) GetHostEntry(IPAddress)
|
Phân giải host hoặc IP thành đối tượng IPHostEntry .
Đối tượng kiểu IPHostEntry nó chứa thông tin địa chỉ về host.
|
IPHostEntry có các thuộc tính để lấy thông tin về host như | |
HostName |
Chuỗi chứa hostname của Server |
AddressList |
Mảng các phần tử kiểu IPAddress chứa các địa chỉ IP |
Ví dụ:
string url = "https://www.bootstrapcdn.com/"; var uri = new Uri(url); var hostEntry = Dns.GetHostEntry(uri.Host); Console.WriteLine($"Host {uri.Host} có các IP"); hostEntry.AddressList.ToList().ForEach(ip => Console.WriteLine(ip)); // Host www.bootstrapcdn.com có các IP // 54.84.220.80 // 52.203.100.2 // 54.226.184.31 // 34.235.106.23 // 54.159.163.191 // 54.164.152.149 // 34.196.72.78 // 34.195.37.70
Lớp Ping
Lớp Ping (System.Net.NetworkInformation.Ping), lớp này cho phép ứng dụng xác định một máy từ xa (như server, máy trong mạng ...) có phản hồi không.
var ping = new Ping(); var pingReply = ping.Send("google.com.vn"); Console.WriteLine(pingReply.Status); if (pingReply.Status == IPStatus.Success) { Console.WriteLine(pingReply.RoundtripTime); Console.WriteLine(pingReply.Address); } // Success // 322 // 172.217.24.195