Enumerate DUN Connections,
Connect to/Disconnect from the Internet
This sample shows how to enumerate your DUN (Dial-Up
Networking) connections, connect to and disconnect from the internet
Download Source Code
This application was developed by Richard Wolf. You can reach Richard at
The heart of this program is the WinInet class module which exposes
methods to list DUN connections, start a DUN connection, and terminate a
When the program starts an instance of the WinInet class is created and the ListDuns
method called to enumerate the existing DUN connections and populate a listbox.
ListDuns relies on the RasEnumEntriesA function
in Rasapi32.dll. RasEnumEntriesA populates an
array of RAS_ENTRIES structures. This structure
contains entries for the DUN connection's name and length.
To connect to the internet, Wininet's StartDUN method is used. StartDUN
first checks the registry to see if a connection already exists. The registry
value examined is the Remote Connection value under the HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\RemoteAccess
If no connection is present, the InternetDial function
from Wininet.dll is executed. One of the
parameters to InternetDial is the Dial-Up Networking connection's name.
InternetDial displays the standard dial up dialog, dials the associated phone
number and attempts to connect.
After a connection is established the InternetHangUp
function, again from Wininet.dll, is invoked to disconnect the DUN session from
Download this project and run it. Select a DUN connection to use and click the Connect
button. Once you are connected to the internet, click the Check Connection
button to verify your connection. Click Disconnect to terminate your