2009-02-12 19 views

Trả lời

42

Bạn có thể để có được những chuỗi DNS toàn như thế này:

System.Net.Dns.GetHostEntry("").HostName 

Chúng tôi không có họ, tên chính thức DNS nơi tôi làm việc, nhưng nó cho tôi một miền giả ba mức thay vì chỉ tên máy chủ.

Chỉnh sửa 2011/03/17: Các thay đổi kết hợp được đề xuất theo nhãn bên dưới.

+1

Better vẫn vượt qua chuỗi rỗng "" để GetHostEntry. Điều này mang lại kết quả tương tự, nhưng cảm thấy tốt hơn. – mark

+0

@mark: Bạn nói đúng, đúng vậy, và đó là một hướng dẫn ít hơn để xử lý. Tôi không biết làm thế nào tôi bỏ lỡ điều đó. Cảm thấy hơi lạ khi cập nhật câu trả lời từ hai năm trước, nhưng ... – Powerlord

+0

Điều này có hoạt động giống với XP như Win7 không? Mã ví dụ được đưa ra trước khi bản chỉnh sửa gần đây cung cấp tên máy chủ đủ điều kiện trên Win7 nhưng chỉ cung cấp tên không đủ tiêu chuẩn trên XP. Muốn mã hoạt động trên cả hai. Cảm ơn. –

2

Nếu ở trên không làm việc, bạn cũng có thể thử lấy nó từ môi trường:

var dnsName = new StringBuilder(); 
dnsName.Append(Environment.GetEnvironmentVariable("COMPUTERNAME")).Append("."); 
dnsName.Append(Environment.GetEnvironmentVariable("USERDNSDOMAIN")); 
+5

Điều này có thể không hoạt động - USERDNSDOMAIN có thể không giống với miền mà máy thuộc về. – pduncan

10

tôi đã sử dụng phương pháp rất giống nhau này:

var serverName = System.Environment.MachineName; //host name sans domain 
var fqhn = System.Net.Dns.GetHostEntry(serverName).HostName; //fully qualified hostname 
Các vấn đề liên quan