2011-01-12 94 views
5

Tôi có một chuỗi có thể đại diện cho tên máy chủ (myip.noip.org, v.v.) hoặc nó có thể đại diện cho một địa chỉ thực ("127.0.0.1"). Cách tốt nhất để giải quyết này để một System.Net.IPAddress là gì?Phân tích địa chỉ IP trong .NET

Xin cảm ơn trước.

Trả lời

6

Sử dụng phương pháp Dns.GetHostAddresses. Điều này sẽ xử lý cả tên miền và giá trị địa chỉ IP thô

IPAddress[] array = DNs.GetHostAddresses(theString); 
1

Sử dụng phương thức IPAddress.Parse cho địa chỉ IP.

IPAddress address = IPAddress.Parse("127.0.0.1"); 

Như đã đề cập bởi những người khác, để giải quyết tất cả các địa chỉ IP và tên máy chủ, sử dụng Dns.GetHostEntry đó:

Giải quyết một tên máy chủ hoặc địa chỉ IP để một thể hiện IPHostEntry.

IPHostEntry lưu một tập hợp địa chỉ IP trong thuộc tính AddressList.

+0

Điều đó có giải quyết được tên máy chủ không? – dko

+0

Không, nó sẽ không. Sử dụng lớp 'Dns'. – SLaks

+0

OP đã yêu cầu giải quyết địa chỉ IP * hoặc * tên máy chủ. Điều này chỉ xử lý các địa chỉ ip – JaredPar

6

Bạn có thể gọi Dns.GetHostEntry trên địa chỉ IP hoặc tên máy chủ.
Nó thậm chí còn đảo ngược tra cứu cho bạn.

Nếu bạn không cần tra cứu ngược lại, bạn có thể gọi Dns.GetHostAddresses để thay thế.

+0

'Dns.Resolve' hiện được liệt kê là lỗi thời; có vẻ như 'Dns.GetHostEntry' là sự thay thế trực tiếp. – Justin

+1

@Justin: Tôi đã chỉnh sửa. – SLaks

Các vấn đề liên quan