2010-03-13 72 views
7

Tôi muốn đặt 2 câu hỏi và tôi sẽ biết ơn nếu ai đó có thể trả lời.Kiểm tra xem PC có được kết nối trên mạng LAN hay không

  1. Làm cách nào để kiểm tra (sử dụng C#) cho dù PC có được kết nối với mạng LAN hay không?

  2. Làm thế nào tôi có thể kiểm tra (sử dụng C#) máy tính của tôi được kết nối vào mạng LAN hoặc cơ sở ping không

+1

Xin xem http://stackoverflow.com/questions/314213/checking-network-status-in-c - nếu điều này không trả lời câu hỏi của bạn đầy đủ, bạn có thể muốn chỉnh sửa nó để tạo sự khác biệt giữa câu hỏi # 1 và # 2 rõ ràng ... – mdb

Trả lời

1

Sử dụng System.Net.NetworkInformation namespace của. Để tham khảo thêm this link

3

Bạn muốn sử dụng Ping để kiểm tra xem PC có được kết nối với mạng LAN hay không. Đây là mẫu:

var ping = new Ping(); 
var options = new PingOptions { DontFragment = true }; 

//just need some data. this sends 10 bytes. 
var buffer = Encoding.ASCII.GetBytes(new string('z', 10)); 
var host = "127.0.0.1"; 

try 
{ 
    var reply = ping.Send(host, 60, buffer, options); 
    if (reply == null) 
    { 
     MessageBox.Show("Reply was null"); 
     return; 
    } 

    if (reply.Status == IPStatus.Success) 
    { 
     MessageBox.Show("Ping was successful."); 
    } 
    else 
    { 
     MessageBox.Show("Ping failed."); 
    } 
} 
catch (Exception ex) 
{ 
    MessageBox.Show(ex.Message); 
} 

Để kiểm tra xem bạn có sở hữu máy được kết nối không, bạn có thể làm tương tự với địa chỉ bạn biết nên giải quyết như nói bộ điều khiển miền.

+1

@Thomas mã này đang gửi ping thành công ngay cả khi tôi xóa cáp lan khỏi PC – HotTester

+2

Đó là vì tôi đã sử dụng 127.0.0.1 chỉ nhằm mục đích minh họa. Bạn sẽ cần phải thay thế IP đó bằng một mạng trên mạng như nói một bộ điều khiển miền. – Thomas

7

Hãy thử

System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable() 
+0

Nó không phải là nói, nếu bạn có bất kỳ kết nối mạng ở tất cả? – lentinant

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