A situation we had in a recent project (Windows Application) was to take some actions based on whether we had an Internet Connection or not. Though it sounds very simple, there is no straight forward way to determine this. This because you can be connected by numerous methods – Internet via LAN/Wireless or Modem/Dialup or thru’ IR/Bluetooth, etc.
Couple of years back, when we were building a Cricket Score Alert Application in VB 6.0, we used to download a very small file via HTTP, and if succeeded we concluded that the Internet Connection was present. This time, I wanted the solution in VB.NET and expected to find a better solution. After several Internet searches, I came across this article (KB Article: 821770), which talks about WinInet DLL. Though this WinInet function gives you good information on the type of Network Connection (LAN or Dialup, etc.), it doesn’t still say for sure you have an active Internet connection.
Instead of calling WinInet through Interop from VB.NET, I would have loved to see a native function in .NET Framework BCL – Framework folks, are you listening?.
You can download the code snippet here, for using the “InternetGetConnectedState” WinInet Function.