[AccessD] detect network

Henry Simpson hsimpson88 at hotmail.com
Fri Jun 20 09:59:36 CDT 2003


If you're worried about distinguishing between dialup and direct LAN when 
they are used exclusively, I use the following API in NT:

Private Declare Function RasGetConnectStatusA Lib "RasApi32.dll" _
  (ByVal hRasCon As Long, lpStatus As Any) As Long

Searching on the function name may get you further for more generic use.

Hen


>From: Bruce Bruen <bbruen at bigpond.com>
>Reply-To: accessd at databaseadvisors.com
>To: accessd at databaseadvisors.com
>Subject: RE: [AccessD] detect network
>Date: Fri, 20 Jun 2003 23:50:46 +1000
>
>Jim,
>
>One thing you'll have to watch out for is on board modems.
>
>As I sit here on my laptop, connected both to the LAN and to a dial up,
>your code tells me that I'm connected. OK - but closer inspection is
>that Ret = &H3 i.e. it sums both the connections!  Similarly, if I pull
>out the LAN cable I still get a positive response from the WAN. So, if
>your guys are dialled up but not connected to YOUR LAN then you'll get a
>false positive.  That is why I suggested the longer (in terms of code)
>method of enumerating the resources.
>
>I'd say you have to have an install or setup parameter in your
>distribution pack  that lets them set up a resource name that would be
>relatively unique to the "homebase" LAN, say a server name, and you'll
>still have to have some error control in the connection establishment to
>cope with Murphy's law.
>
>hth
>Bruce
>
>-----Original Message-----
>From: accessd-bounces at databaseadvisors.com
>[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim DeMarco
>Sent: Friday, June 20, 2003 10:42 PM
>To: accessd at databaseadvisors.com
>Subject: RE: [AccessD] detect network
>
>
>Thanks.  The app is being distributed to a number of companies so I've
>been looking for something generic that won't need any direction as to
>where to look.  I found a simple API this AM that I think does the
>trick:
>
>'Requires Windows 2000
>'(or Windows NT 4.0 with Internet Explorer 5 or later); 'Requires
>Windows 95 or later (with Internet Explorer 5 or later)
>
>'Parameter info
>'. lpdwFlags
>'Provides information on the type of network connection available when
>the return value is TRUE. The flags can be: 'NETWORK_ALIVE_LAN 'The
>computer has one or more LAN cards that are active. 'NETWORK_ALIVE_WAN
>'The computer has one or more active RAS connections. 'NETWORK_ALIVE_AOL
>'This flag is only valid in Windows 95 and Windows 98. Indicates the
>computer is connected to the America Online network.
>
>'Return Values
>'
>'TRUE
>'The local system is connected to a network.
>'FALSE
>'Call GetLastError to determine the reason for no connectivity.
>
>Const NETWORK_ALIVE_AOL = &H4
>Const NETWORK_ALIVE_LAN = &H1
>Const NETWORK_ALIVE_WAN = &H2
>
>Declare Function IsNetworkAlive Lib "SENSAPI.DLL" (ByRef lpdwFlags As
>Long) As Long
>
>Public Function AmIConnected() As Boolean
>     'KPD-Team 2001
>     'URL: http://www.allapi.net/
>     'E-Mail: KPDTeam at Allapi.net
>     Dim Ret As Long
>     Dim blnReturn As Boolean
>     blnReturn = IsNetworkAlive(Ret) <> 0 And Ret <> NETWORK_ALIVE_AOL
>'we're just interested in lan/wan
>     AmIConnected = blnReturn
>End Function
>
>Thanks,
>
>Jim DeMarco
>Director of Product Development
>HealthSource/Hudson Health Plan
>
>
>-----Original Message-----
>From: Jim Dettman [mailto:jimdettman at earthlink.net]
>Sent: Friday, June 20, 2003 8:13 AM
>To: accessd at databaseadvisors.com
>Subject: RE: [AccessD] detect network
>
>
>Jim,
>
>   Not sure if this will fit your needs or not, but how about issuing a
>shell command with:
>
>   Ping <address of server>  >netchk.txt
>
>   Then open and parse netchk.txt.  You just need to look for the word
>"reply".   If found, you have a physical connection at least to the
>server.
>
><<Or should we just try to hit the central DB at app start and trap the
>error?  I don't want to generate an error if I don't have to.>>
>
>   That's what I would do.  To many things can foul things up (ie.
>security) beyond simply checking for a connection.  Of course, I suppose
>it depends on what you meant by "a connection".
>
>    But in the end result, it's your app that needs to carry out whatever
>operation.  By the time you've done enough checking to verify that the
>app will be able to perform whatever, you might as well have just tried
>it.
>
>Jim Dettman
>President,
>Online Computer Services of WNY, Inc.
>(315) 699-3443
>jimdettman at earthlink.net
>
>-----Original Message-----
>From: accessd-bounces at databaseadvisors.com
>[mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Jim DeMarco
>Sent: Thursday, June 19, 2003 8:33 AM
>To: AccessD (E-mail)
>Subject: [AccessD] detect network
>
>
>We've got a data collection application that will be run on disconnected
>laptops.  At least once a week the laptop users will come in to the home
>office to dump the data they've collected into our central SQL database.
>Does anyone have any code that will detect that the laptop is connected
>to our network so we can point their connection to the central DB (as
>opposed to their local DB)?  Or should we just try to hit the central DB
>at app start and trap the error?  I don't want to generate an error if I
>don't have to.
>
>Thanks,
>
>Jim DeMarco
>Director of Product Development
>HealthSource/Hudson Health Plan
>
>
>************************************************************************
>****
>*******
>"This electronic message is intended to be for the use only of the named
>recipient, and may contain information from Hudson Health Plan (HHP)
>that is confidential or privileged.  If you are not the intended
>recipient, you are hereby notified that any disclosure, copying,
>distribution or use of the contents of this message is strictly
>prohibited.  If you have received this message in error or are not the
>named recipient, please notify us immediately, either by contacting the
>sender at the electronic mail address noted above or calling HHP at
>(914) 631-1611. If you are not the intended recipient, please do not
>forward this email to anyone, and delete and destroy all copies of this
>message.  Thank You".
>************************************************************************
>****
>*******
>
>_______________________________________________
>AccessD mailing list
>AccessD at databaseadvisors.com
>http://databaseadvisors.com/mailman/listinfo/accessd
>Website: http://www.databaseadvisors.com
>
>
>_______________________________________________
>AccessD mailing list
>AccessD at databaseadvisors.com
>http://databaseadvisors.com/mailman/listinfo/accessd
>Website: http://www.databaseadvisors.com
>
>
>************************************************************************
>***********
>"This electronic message is intended to be for the use only of the named
>recipient, and may contain information from Hudson Health Plan (HHP)
>that is confidential or privileged.  If you are not the intended
>recipient, you are hereby notified that any disclosure, copying,
>distribution or use of the contents of this message is strictly
>prohibited.  If you have received this message in error or are not the
>named recipient, please notify us immediately, either by contacting the
>sender at the electronic mail address noted above or calling HHP at
>(914) 631-1611. If you are not the intended recipient, please do not
>forward this email to anyone, and delete and destroy all copies of this
>message.  Thank You".
>************************************************************************
>***********
>
>_______________________________________________
>AccessD mailing list
>AccessD at databaseadvisors.com
>http://databaseadvisors.com/mailman/listinfo/accessd
>Website: http://www.databaseadvisors.com
>
>_______________________________________________
>AccessD mailing list
>AccessD at databaseadvisors.com
>http://databaseadvisors.com/mailman/listinfo/accessd
>Website: http://www.databaseadvisors.com

_________________________________________________________________
Add photos to your e-mail with MSN 8. Get 2 months FREE*.  
http://join.msn.com/?page=features/featuredemail

_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com



More information about the AccessD mailing list