CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 2 of 2
  1. #1
    Join Date
    Dec 2005
    Posts
    66

    Network connection detection

    Hello,

    VS 2008

    I am developing an application that has to detect whether a client has a network connection. i.e. LAN cable plugged in or wireless switched on. I have been using the code below.

    I am using the NetworkAvailabilitychangedEvent to fire an event when their wireless is turned off or the cable has been pulled out. However, this only works if the user has only 3 connections present (LAN, Wireless, and loopbacks).
    Microsoft:
    "The network is available when at least one network interface is marked "up" and is not a tunnel or loopback interface.
    However, some client has more than 3 connections. One client had a bluetooth connection and someone else had some VMWare connections. On these client it failed to fire the event.

    Is there anyway I can ignore all these connections I am not interested in listening out for, and just listen on the LAN and Wireless?

    Many thanks for any advice,

    Code:
    private void Form1_Load(object sender, EventArgs e)
            {
                NetworkChange.NetworkAvailabilityChanged += new NetworkAvailabilityChangedEventHandler(OnNetworkChangedEvent);   
            }
    
            private void OnNetworkChangedEvent(object sender, NetworkAvailabilityEventArgs e)
            {
                bool available = e.IsAvailable;
    
                NetworkInterface[] networkConnections = NetworkInterface.GetAllNetworkInterfaces();
    
                foreach (NetworkInterface ni in networkConnections)
                {
                    if (ni.Name == "Local Area Connection")
                    {
                        if (ni.OperationalStatus == OperationalStatus.Down)
                        {
                            Console.WriteLine("LAN disconnected: " + ni.Description);
                        }
                    }
                    else if (ni.Name == "Wireless Network Connection")
                    {
                        if (ni.OperationalStatus == OperationalStatus.Down)
                        {
                            Console.WriteLine("Wireless disconnected: " + ni.Description);
                        }
                    }
                }
            }

  2. #2
    Join Date
    Mar 2004
    Location
    Singapore
    Posts
    47

    Re: Network connection detection

    Quote Originally Posted by steve1_rm View Post
    Is there anyway I can ignore all these connections I am not interested in listening out for, and just listen on the LAN and Wireless?

    Code:
    private void Form1_Load(object sender, EventArgs e)
            {
                NetworkChange.NetworkAvailabilityChanged += new NetworkAvailabilityChangedEventHandler(OnNetworkChangedEvent);   
            }
    
            private void OnNetworkChangedEvent(object sender, NetworkAvailabilityEventArgs e)
            {
                bool available = e.IsAvailable;
    
                NetworkInterface[] networkConnections = NetworkInterface.GetAllNetworkInterfaces();
    
                foreach (NetworkInterface ni in networkConnections)
                {
                    if (ni.Name == "Local Area Connection")
                    {
                        if (ni.OperationalStatus == OperationalStatus.Down)
                        {
                            Console.WriteLine("LAN disconnected: " + ni.Description);
                        }
                    }
                    else if (ni.Name == "Wireless Network Connection")
                    {
                        if (ni.OperationalStatus == OperationalStatus.Down)
                        {
                            Console.WriteLine("Wireless disconnected: " + ni.Description);
                        }
                    }
                }
            }
    I am not really sure what you need. I believe that your code does what you want, to check only the LAN and wireless connection.
    Xander Tan

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured