Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Script that reads a TXT file, ping computername and return IP address

Posted on 2008-06-24
11
Medium Priority
?
2,250 Views
Last Modified: 2013-11-25
Hi Experts,

Is it possible to have a script reading a text file with computer names, ping computer name and return the IP address?
I've seen script that compear column in Excel, ping IP address in text file etc, but I can't get the script pinging computer name and return the IP address. Even better if the script could write the IP next to the computer name.

In advanced, thank you.
0
Comment
Question by:Bjarte Fjelland
  • 5
  • 5
11 Comments
 
LVL 13

Expert Comment

by:TheCapedPlodder
ID: 21853444
Try this:

@echo off
for /f %%a in (comptuer_list.txt) do set target=%%a & call :ping
goto end

:ping
ping %target% -n 1 >ping_output.txt
for /f "tokens=3 skip=2" %%b in ('find "Reply" ping_output.txt') do set address=%%b & call :write
goto end

:write
del ping_output.txt
echo %target% %address% >>output.txt

:end




computer_list.txt needs to look like this:

server1
server2
server3
etc.

At the end of the process output.txt will look like this:

server1 10.0.0.1:
server2 10.0.0.2:
server3 10.0.0.3:
etc.
0
 
LVL 1

Author Comment

by:Bjarte Fjelland
ID: 21854371
Tryed your suggestion TheCapedPlodder, but the Output.txt does not appear, only the last ping status in ping_output.txt file.
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
LVL 13

Expert Comment

by:TheCapedPlodder
ID: 21854392
Ok, REM out the @echo off line and run it again. e.g.:

REM @echo off


  Then post the output here.  Initially only have two servers in the input file for testing.
0
 
LVL 1

Author Comment

by:Bjarte Fjelland
ID: 21854691
It does fetch the computer name from the computer_list.txt and continue the rutine, but it does not write the output file.

C:\>REM @echo off
C:\>for /F %a in (comptuer_list.txt) do set target=%a   & call :ping
C:\>set target=Server1 & call :ping
C:\>ping Server1  -n 1  1>ping_output.txt
C:\>for /F "tokens=3 skip=2" %b in ('find "Reply" ping_output.txt') do set address=%b   & call :write
C:\>goto end
0
 
LVL 13

Expert Comment

by:TheCapedPlodder
ID: 21854726
Interesting, can you post the contents of ping_output.txt for me please?

This worked for me but I run Vista so the output might be slightly different.

Cheers,

TCP
0
 
LVL 1

Author Comment

by:Bjarte Fjelland
ID: 21854982
Got it to work, but on a English OS.
I do not have English installed on my computer because of support.

Thank you.
0
 
LVL 13

Expert Comment

by:TheCapedPlodder
ID: 21855006
Aha!

That makes sense.

You can change it to work with your language.  Just post me the ouput of ping_output.tx and I'll let you know.

Cheers,

TCP
0
 
LVL 1

Author Comment

by:Bjarte Fjelland
ID: 21855154
Of course :o)

Pinger Server1.Domain.NO [IP address] med 32 byte data:
Svar fra IP address: byte=32 tid=5ms TTL=120
Ping-statistikker for IP address:
    Pakker: sendt = 1, mottatt = 1, tapt = 0 (0% tap),
Gjennomsnittlig tid for tur-retur i millisekunder:
    minimum = 5ms, maksimum = 5ms, gjennomsnittlig = 5ms
0
 
LVL 13

Accepted Solution

by:
TheCapedPlodder earned 2000 total points
ID: 21855250
Updated (I just replaced the word Relpy with the word Svar).  Give it a whirl:


@echo off
for /f %%a in (comptuer_list.txt) do set target=%%a & call :ping
goto end

:ping
ping %target% -n 1 >ping_output.txt
for /f "tokens=3 skip=2" %%b in ('find "Svar" ping_output.txt') do set address=%%b & call :write
goto end

:write
del ping_output.txt
echo %target% %address% >>output.txt

:end


I've also updated it to make it a bit easier to read if you want a neater version try this:
@echo off
for /f %%a in (comptuer_list.txt) do (
      set target=%%a
      call :ping
)
goto :eof

:ping
ping %target% -n 1 >ping_output.txt
for /f "tokens=3 skip=2" %%b in ('find "Svar" ping_output.txt') do (
      set address=%%b
      call :write
)
goto :eof

:write
del ping_output.txt
echo %target% %address% >>output.txt




Cheers,

TCP
0
 
LVL 1

Author Closing Comment

by:Bjarte Fjelland
ID: 31470058
Thanks, that was more than I've expected.
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article is the result of a quest to better understand Task Scheduler 2.0 and all the newer objects available in vbscript in this version over  the limited options we had scripting in Task Scheduler 1.0.  As I started my journey of knowledge I f…
This article describes some techniques which will make your VBA or Visual Basic Classic code easier to understand and maintain, whether by you, your replacement, or another Experts-Exchange expert.
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…

927 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question