icecom4
asked on
batch script to detect type of network connection
This may sound a bit ambitious, but I would like a windows batch script that detects the type of network connection being used for the active internet connection. It does not have to be 100% accurate, and any improvising is welcome. It will be part of a gaming script, which will apply specific settings recommended by that game.
Here is the idea...
Here is the idea...
if exist [56k modem detect script] goto 56k
if exist [wireless detect script] goto wifi
if exist [ethernet detect script] goto ether
:56k
echo. modifying for slow settings
goto next
:wifi
echo. modifying for strong but unstable settings
goto next
:ether
echo. modifying for fast settings
goto next
ASKER
Well, I am trying to make this a one click automated install. It's pretty nice so far (thanks to you and others), and uses the zetprogressbar as a gui, the batch runs silent. So I don't want to stop and ask any questions with a batch prompt.
However, I have flirted with the possibility of adding some install flags to do a few optional tasks. I just don't know how do that, and even if I did, to pass this from the installer package (winrar) to batch might make it more complicated.
At this point, I am just working on a little cool factor for this installer.
by the way, I may be looking to find an expert to look over the entire installer for mistakes, or things that might be hap-hazard. know of anyone?
However, I have flirted with the possibility of adding some install flags to do a few optional tasks. I just don't know how do that, and even if I did, to pass this from the installer package (winrar) to batch might make it more complicated.
At this point, I am just working on a little cool factor for this installer.
by the way, I may be looking to find an expert to look over the entire installer for mistakes, or things that might be hap-hazard. know of anyone?
You could use AutoIt and replace the batch altogether, below is a script I've used previously, I didn't write it but it worked well to tell us what type the connection was:
Global Const $INTERNET_CONNECTION_MODEM = 0x1
Global Const $INTERNET_CONNECTION_LAN = 0x2
Global Const $INTERNET_CONNECTION_PROXY = 0x4
Global Const $INTERNET_CONNECTION_MODEM_BUSY = 0x8
Global Const $INTERNET_RAS_INSTALLED = 0x10
Global Const $INTERNET_CONNECTION_OFFLINE = 0x20
Global Const $INTERNET_CONNECTION_CONFIGURED = 0x40
Dim $State, $val
$InetStruct = DllStructCreate("int")
$aRet = DllCall("wininet.dll", "int", "InternetGetConnectedState", "ptr", DllStructGetPtr($InetStruct), "int", 0)
ConsoleWrite("!> " & $aRet[0] & @LF)
$val = DllStructGetData($InetStruct, 1)
If BitAND($val, $INTERNET_CONNECTION_MODEM) Then $State &= "Modem connection" & @LF
If BitAND($val, $INTERNET_CONNECTION_LAN) Then $State &= "LAN connection" & @LF
If BitAND($val, $INTERNET_CONNECTION_PROXY) Then $State &= "Proxy connection" & @LF
If BitAND($val, $INTERNET_CONNECTION_MODEM_BUSY) Then $State &= "Modem bussy" & @LF
If BitAND($val, $INTERNET_RAS_INSTALLED) Then $State &= "RAS installed" & @LF
If BitAND($val, $INTERNET_CONNECTION_OFFLINE) Then $State &= "Offline connection" & @LF
If BitAND($val, $INTERNET_CONNECTION_CONFIGURED) Then $State &= "Connection configured"
MsgBox(0, "Connection", $State)
Do you know if the computers running the BAT script will have WMIC installed on them? We might be able to use that to find the active adapter, and then get it's speed. I suspect that could be used to drive the decision you are trying to make.
~bp
~bp
ASKER
@bill
I am targeting windows XP sp 2 and higher. I don't know if that answers your question.
I am targeting windows XP sp 2 and higher. I don't know if that answers your question.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
@ Bill
thanks, and sorry for late reply. I will look at this tonight.
thanks, and sorry for late reply. I will look at this tonight.
Have you thought about asking the user a question in the BAT file instead, and just let them tell you what they have and then using that to drive your logic?
~bp