2009-06-01 14 views
5

Tôi cần một đoạn mã có thể phát hiện xem kết nối mạng đã được kết nối hay ngắt kết nối chưa. Trạng thái kết nối có nghĩa là cáp được cắm vào kết nối Ethernet. Trạng thái ngắt kết nối có nghĩa là không có kết nối cáp.Phát hiện trạng thái mạng (kết nối - ngắt kết nối) trong C#

Tôi không thể sử dụng giao diện WMI do thực tế là tôi đang chạy trên Windows CE. Tôi không ngại gọi API Win32 nhưng hãy nhớ rằng tôi đang sử dụng Windows CE và chạy trên Compact Framework.

+0

Một điều cần nhớ là kết nối mạng không bằng kết nối internet. Có vẻ như bạn đã nhận được điều đó vì bạn xác định được kết nối là có nghĩa là "cáp được cắm vào kết nối Ethernet", nhưng nó sẽ lặp lại. –

Trả lời

0

Một điều cần ghi nhớ là một kết nối mạng là không bằng một kết nối internet.

Có vẻ như bạn đã nhận được điều đó vì bạn xác định được kết nối là có nghĩa là "cáp được cắm vào kết nối Ethernet", nhưng nó sẽ lặp lại.

+0

Vâng, tôi hiểu điều này. Tôi thực sự muốn chỉ phát hiện trạng thái kết nối "cáp". –

+0

@ kelton52 Đồng ý. Các quy tắc đã thay đổi kể từ tháng 6 năm 2009 :) Tôi đã thêm nhận xét và tôi sẽ xóa nhận xét này sau vài phút. –

1

Gọi GetAdaptersInfo và lặp qua danh sách bộ điều hợp mạng khả dụng cho đến khi bạn tìm thấy bộ điều hợp bạn đang tìm kiếm?

4

Cách dễ nhất là sử dụng OpenNETCF's SDF và xem OpenNETCF.Net.NetworkInformation.NetworkInterfaceWatcher class, sẽ tăng sự kiện khi NDIS gửi thông báo (như MEDIA_CONNECT và MEDIA_DISCONNECT).

Bạn có thể thực hiện công việc tương tự mà không cần SDF, tất nhiên. Nó liên quan đến việc khởi động trình điều khiển NDIS trực tiếp và gọi số IOCTL_NDISUIO_REQUEST_NOTIFICATION với xử lý hàng đợi tin nhắn P2P. Nó không phải là quá khó khăn, nhưng có rất nhiều bạn phải có được quyền cho nó để làm việc và không bị rò rỉ.

+0

Xin chào, tôi đã tải xuống 2,3 tệp nhị phân từ https://opennetcf.codeplex.com/releases/view/137461 nhưng tôi không thể tìm thấy AdapterStatusMonitor trong Vùng tên OpenNETCF.Net ... Tôi có thiếu gì đó không? Cảm ơn! – franDayz

+1

Hãy xem 'NetworkInterfaceWatcher' http://opennetcf.codeplex.com/SourceControl/latest#OpenNETCF.Net/OpenNETCF.Net/NetworkInformation/NetworkInterfaceWatcher.cs – ctacke