Ping computer variable by name and by ip in script

Hey Experts!  I'm not sure if this can be done but if it can, I know this is the group that will figure it out.

In the following script, I use the computer name as the %computer% variable and then ping it.  The %computer% variable is logged to a file as is the IP.  The problem that I ran into is that (in rare occasions) the IP actually resolves to a different hostname.  So, I was curious how I could get the script to ping the %computer% and based on the IP given, run a ping -a %ip% next so that I can see what the DNS record is.  Again, not sure if it is possible but I figured I would ask as it would help our trouble-shooting here.  

echo ----[Computer Info]----> %logfile%
echo %Computer% >> %logfile%
ping -n 2 %computer%>> %logfile%
echo. >> %logfile%

Open in new window


Thanks in advance experts.
**UPDATED**  Could nslookup be used?
LVL 9
samiam41Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

TropicalBoundCommented:
I was going to suggest nslookup:

nslookup %computer%

If you have more than one DNS server you can query each:

nslookup %computer% dnsserver1
nslookup %computer% dnsserver2
....
0
Steve KnightIT ConsultancyCommented:
I'm on mobile at moment but do you get the right answer using nslookup?

nslookup %computer%

Also you can do all the redirects in one go if wanted:

(echo whatever
echo whatever
)>logfile.txt

Will look back from pc later if no one else does it first.

Steve
0
samiam41Author Commented:
Thanks for the quick response experts!

Here is the script I'm using:

@echo off
setlocal

set /p "Computer=Please enter computer name: "
if "%Computer%" EQU "" (
  echo No computer name entered, ending.
  exit /b
)

set logfile= \\___\public\FG_Diagnostic\%computer%.log

echo ----[Computer Info]----> %logfile%
echo %Computer% >> %logfile%
ping -n 2 %computer%>> %logfile%
echo. >> %logfile%

Open in new window


What I want to add is an nslookup of the IP that was provided when the computer was pinged.  I don't know how to use the IP provided as a variable so that I can run nslookup %ip%.
0
Cloud Class® Course: C++ 11 Fundamentals

This course will introduce you to C++ 11 and teach you about syntax fundamentals.

TropicalBoundCommented:
OK.  So, after you ping the computer name and save it in the logfile:
ping -n 2 %computer%>> %logfile%

Ping it again and save it to a variable:
ping -n 2 %computer % >> %computerip%

Then do a ping -a on that variable:
ping -a %computerip% >> %pingresult%
0
oBdACommented:
Something like that?
@echo off
setlocal

set /p "Computer=Please enter computer name: "
if "%Computer%" EQU "" (
  echo No computer name entered, ending.
  exit /b
)
set logfile= \\___\public\FG_Diagnostic\%computer%.log

 >"%LogFile%" echo ----[Computer Info]----
>>"%LogFile%" echo %Computer%
>>"%LogFile%" echo ---- forward nslookup of IP '%Computer%':
nslookup.exe %Computer% >>"%LogFile%" 2>&1
set IP=
for /f "tokens=2 delims=[]" %%a in ('ping.exe -n 2 %computer% ^| find.exe /i "Pinging %computer%"') do set IP=%%a
>>"%LogFile%" echo --- Pinging by name '%computer%'
ping.exe -n 2 %computer% >>"%LogFile%"
if "%IP%"=="" (
	>>"%LogFile%" echo Could not determine the IP.
) else (
	>>"%LogFile%" echo ---- reverse nslookup of IP '%IP%':
	nslookup.exe %IP% >>"%LogFile%" 2>&1
	>>"%LogFile%" echo ---- Pinging by IP '%IP%'
	ping.exe -a -n 2 %computer% >>"%LogFile%"
)
echo.

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
samiam41Author Commented:
oBdA, hey there.  Here are the results when I run the script you posted above (I did update the set logfile path to include the correct server name)

Please enter computer name: fin7acaswed1
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
0
oBdACommented:
Remove the space directly after the "=" in "set logfile=" in line 9, and try again.
0
samiam41Author Commented:
TropicalBound, I put what you posted above into a script but the results aren't logged in the logfile.  This is all I get.


Pinging x [81.131] with 32 bytes of data:
Reply from 81.131: bytes=32 time<1ms TTL=128
Reply from 81.131: bytes=32 time<1ms TTL=128

Ping statistics for 81.131:
    Packets: Sent = 2, Received = 2, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms


I need to take that IP and run nslookup or ping -a on it.
0
TropicalBoundCommented:
OK.  Change %pingresult% to %logfile%
0
samiam41Author Commented:
oBdA, that fixed it!!  It looks great.  

I want to give TropicalBound a chance to fix their suggestion before I close out and award points.
0
samiam41Author Commented:
tropicalbound, here is what I am using for the script to test your suggestion:

@echo off
setlocal

set /p "Computer=Please enter computer name: "
if "%Computer%" EQU "" (
  echo No computer name entered, ending.
  exit /b
)
set logfile=\\__\public\FG_Diagnostic\%computer%.log

ping -n 2 %computer%>> %logfile%

ping -n 2 %computer% >> %computerip%

ping -a %computerip% >> %logfile%

Open in new window


I'm getting this in the logfile


Pinging x 81.131] with 32 bytes of data:
Reply from 81.131: bytes=32 time<1ms TTL=128
Reply from 81.131: bytes=32 time<1ms TTL=128

Ping statistics for 81.131:
    Packets: Sent = 2, Received = 2, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms
0
TropicalBoundCommented:
OK.  As long as you have an acceptable solution from oBdA, no point in continuing.  Correct?
0
samiam41Author Commented:
I would split points if you wanted to continue to find a way to make your suggestion work.  I felt that only fair to give that opportunity since you presented a possible solution.  It's your call on how to proceed.
0
TropicalBoundCommented:
Thank you samiam41.  I appreciate that.  Go ahead and give oBdA the points.

Have a great day!

TB
0
samiam41Author Commented:
Can do.  Thanks for contributing and hopefully we get to work together again in the near future!
0
samiam41Author Commented:
Amazing work as always oBdA!  Thank you for your help.
0
samiam41Author Commented:
If anyone wants some points and have a few minutes, please check out my new question.  Thank you.

http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/MS_DOS/Q_28602773.html
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Windows Batch

From novice to tech pro — start learning today.