aha - the old netstat -

i thought there should be a command to tell me the connections .

thanks -


----- Original Message -----
From: "John Roland Elliott" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sunday, December 16, 2001 10:12 AM
Subject: Re: detecting a current connect


> I'm not really proud of this but it's the first thing that came to mind
and it
> might work for you. Some of the elements (the %computername%, in
particular)
> may not work on Window 9x; some of the elements ({for /F}, in particular)
> won't work in Windows 9x or NT. I'm sure you can make some simplifying
> assumptions and consequent simplifications that will meet your needs and
if
> you're using Windows 2000, I think this will work unmodified.
>
> The command {netstat -a} shows all IP connections and listening ports,
e.g.,
> if run on a VNC server that DOES NOT have a session established with a
viewer,
> it produces:
>
> <snip>
>  TCP    JRE-SRVR:1035           JRE-SRVR:0             LISTENING
>  TCP    JRE-SRVR:5800           JRE-SRVR:0             LISTENING
>  TCP    JRE-SRVR:5900           JRE-SRVR:0             LISTENING
>  TCP    JRE-SRVR:11965          JRE-SRVR:0             LISTENING
> <snip>
>
> If run on a VNC server that DOES have a session established with a viewer,
> {netstat -a} produces:
>
> <snip>
>  TCP    JRE-SRVR:1035          JRE-SRVR:0             LISTENING
>  TCP    JRE-SRVR:5800          JRE-SRVR:0             LISTENING
>  TCP    JRE-SRVR:5900          JRE-SRVR:0             LISTENING
>  TCP    JRE-SRVR:11965         JRE-SRVR:0             LISTENING
> <snip>
>  TCP    JRE-SRVR:netbios-ssn   JRE-SRVR:0             LISTENING
>  TCP    JRE-SRVR:5900          JRE-VIEW:1202          ESTABLISHED
>  UDP    JRE-SRVR:epmap         *:*
> <snip>
>
> Notice the word "ESTABLISHED" appears when you have a session in progress.
>
> If you pipe {netstat -a}'s output to a find command looking for the VNC
port
> (:5900) you'll get only the lines relevant to VNC, e.g., on a VNC server
that
> has a client connected to it, {netstat -a | find ":5900"} on a VNC server
that
> has a connection established produces:
>
>  TCP    JRE-SRVR:5900          JRE-SRVR:0             LISTENING
>  TCP    JRE-SRVR:5900          JRE-VIEW:1202          ESTABLISHED
>
> If the VNC server were also acting as a viewer to another VNC server,
you'd
> get a line you are not really interested in:
>
>  TCP    JRE-SRVR:5900          JRE-SRVR:0             LISTENING
>  TCP    JRE-SRVR:1050          JRE-ANOTHER:5900       ESTABLISHED
>  TCP    JRE-SRVR:5900          JRE-VIEW:1202          ESTABLISHED
>
> To avoid that, you can change the command to {netstat -a | find /i
> "%computername%:5900"} giving:
>
>  TCP    JRE-SRVR:5900          JRE-SRVR:0             LISTENING
>  TCP    JRE-SRVR:5900          JRE-VIEW:1202          ESTABLISHED
>
> The {/i} is needed on the find command to make it case-insensitive because
> {%computername%} and {netstat} aren't case consistent.
>
> {find} sets %errorlevel% to "0" if it finds what it's looking for and to
> something greater than "0" if it doesn't, so piping all that to {find
> "ESTABLISHED"} will give a way to determine if the word "ESTABLISHED"
appears.
> {netstat -a | find /i "%computername%:5900" | find "ESTABLISHED"} gives
>
>  TCP    JRE-SRVR:5900          JRE-VIEW:1202          ESTABLISHED
>
> and sets %errorlevel% to "0" so a reasonable thing to do might be to
follow
> {netstat -a | find /i "%computername%:5900" | find "ESTABLISHED"} with
>
> if not %errorlevel% 1 call what-to-do-when-connected.bat
> if     %errorlevel% 1 call what-to-do-when-not-connected.bat
>
> Remember that {if %errorlevel% n}  is true when %errorlevel% is equal to
OR
> GREATER THAN n.
>
> There is one condition that I can think of that will befuddle this
scheme ---
> if the word "ESTABLISHED" appears somewhere in the name of one of the VNC
> machines involved. Accounting for that is pretty straightforward. The
{for}
> command of Windows 2000 (but not NT or 9x) can parse a line and pick out
the
> token in the fourth column alone, ignoring the second and third where
> "ESTABLISHED" would appear if it were part of a computer name. These
commands
> account for this possibility:
>
> netstat -a | find /i "%computername%:5900" | find "ESTABLISHED" >
> %temp%\delete.me
> for /F "tokens=4" %s in (%temp%\delete.me) do echo %s | find "ESTABLISHED"
> if not %errorlevel% 1 call what-to-do-when-connected.bat
> if     %errorlevel% 1 call what-to-do-when-not-connected.bat
> del %temp%\delete.me
>
> You may or may not know that, in order to put the above into a batch file,
you
> need to double up the "%" in "%s" on the {for} command, i.e., the {for}
line
> needs to read
>
> for /F "tokens=4" %%s in (%temp%\delete.me) do echo %%s | find
"ESTABLISHED"
>
> Cheers,
> JRE
>
> ----- Original Message -----
> From: "edlogic" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Saturday, December 15, 2001 1:57 PM
> Subject: detecting a current connect
>
>
> > winvnc -
> >
> > running server behind firewall at work to connect to viewer at home .
> >
> > from command prompt i can start the server and connect but i have no way
to
> > detect if a connection is still alive at the command prompt .
> >
> > also the windows modal dialogs get in the way when i get messages about
the
> > server already running etc .
> >
> > ----------
> >
> > i want my work computer to periodically attempt to connect to my home
> > computer any time there is not an active connection .  that way any time
i
> > want control of my work computer - all i gotta do is start the listening
> > viewer on my home machine .
> >
> > right now i have a batch file looping with a delay time and it stops and
> > starts the server - this breaks and remakes the current connection ( if
> > present ) .
> >
> > it works but is cumbersome .
> >
> > since i can't tell if there is a current connect i have to stop the
server
> > and restart .
> > ---------------------------------------------------------------------
> > To unsubscribe, mail [EMAIL PROTECTED] with the line:
> > 'unsubscribe vnc-list' in the message BODY
> > See also: http://www.uk.research.att.com/vnc/intouch.html
> > ---------------------------------------------------------------------
> ---------------------------------------------------------------------
> To unsubscribe, mail [EMAIL PROTECTED] with the line:
> 'unsubscribe vnc-list' in the message BODY
> See also: http://www.uk.research.att.com/vnc/intouch.html
> ---------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, mail [EMAIL PROTECTED] with the line:
'unsubscribe vnc-list' in the message BODY
See also: http://www.uk.research.att.com/vnc/intouch.html
---------------------------------------------------------------------

Reply via email to