How do I detect whether of not an Internet connection exists?

My problem is that I need to test whether or not a connection to the internet exists in windows95.  The obvious solution is to test your own IP address and compare it to 127.0.0.1 .  If the comparison is true, your offline.  Any other IP address means your online.

The problem is that with windows95, any call to winsock triggers the dialer.  I DO NOT want to trigger the dialer if there is no connection to the internet.

So, I guess my question is:

   How do I make a call to Winsock without triggering the dialer?

LVL 1
sleachAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
sperlingConnect With a Mentor Commented:
Might work using the RasEnumConnections API call...

If you need help using this function, let me know.

Regards,

Erik.
0
 
sleachAuthor Commented:
Edited text of question
0
 
sleachAuthor Commented:
Adjusted points to 204
0
Learn to develop an Android App

Want to increase your earning potential in 2018? Pad your resume with app building experience. Learn how with this hands-on course.

 
sleachAuthor Commented:
sperling, I am unfamiliar with RAS.  Can you point me to a code example?  

Also, will RasEnumConnections show only dial up networking connections, or will it also show connections from other dialers(such as AOL's 32 bit dialer)?

I am currently using FindWindow to detect the Win95 Dialer, but this only works with the Win95 Dialer.  I need a method thats Dialer independant.

Can RAS be used to disable the AutoDial feature?
0
 
sperlingCommented:
>sperling, I am unfamiliar with RAS. Can you point me to a code
>example?

So am I ;)

I haven't got any modems installed, and I don't run 95... Therefore I can just suggest that you make a small test program displaying RasEnumConnections output in an ButtonClick event, and then tries to figure out how it works by noting what output you get while offline and online using different dialers.

Sorry I can't be of more help.

Regards,

Erik.
0
 
sleachAuthor Commented:
It took me awhile, but I finally figured it out.

For the purpose of sharing the solution, Here is the function that works for me.

USES ras;

function RasConnected:  boolean;
var
    rasconnbuf:  TRasConn;
    cb, ret, numConn:  integer;
    connected:  boolean;
begin

    //Required to provide buffer size
    rasconnbuf.dwSize := sizeof(rasconnbuf);
    cb := sizeof(TRasConn);

    //Retrieve info about first active connection (I only have one - change this if you have more)
    ret := RasEnumConnections(@rasconnbuf, cb, numConn);

    if ((numConn = 0) or (ret <> 0)) then connected := false
    else Connected := true;
result := connected;
end;

0
All Courses

From novice to tech pro — start learning today.