<

Test IP Addresses with PING

Published on
17,148 Points
6,148 Views
5 Endorsements
Last Modified:
Awarded
Joe Winograd, EE MVE 2015&2016
50+ yrs in computer industry. Everything from programming to sales. OS kernel dev on mainframes. CIO. Document imaging. EE MVE 2015 & 2016.
This article is in response to a question here at Experts Exchange. The Original Poster (OP) requires a utility that will accept a list of IP addresses as input, PING each of the IP addresses in the list, and send an email via SMTP to a support group when the PING is not successful on an IP address.

The method presented in this article requires AutoHotkey, an excellent (free!) programming/scripting language. The quick explanation for installing AutoHotkey is to visit its website and click the big blue Download button. A more comprehensive explanation is to read my EE article, AutoHotkey - Getting Started. After installation, AutoHotkey will own the AHK file type, supporting the solution discussed in the remainder of this article.

The utility takes as input a plain text file with each IP address on a separate line, such as:

192.168.0.123
192.168.0.456
192.168.0.789


The utility reads the file with the list of IP addresses and PINGs each one. It redirects the output of the PING command to a text file (via the command line ">" operator). It then looks for the five most common PING errors anywhere in the PING output, namely:

Destination Host Unreachable
Ping request could not find host
Request Timed Out
TTL Expired in Transit
Unknown Host


If the utility finds any of these, it sends an email via SMTP with PING Error Notification as the Subject and with an email Body that looks like this:

IP Address: 192.168.0.123
PING output: Reply from 192.168.0.101: Destination host unreachable.

Another example of what it may look like is this:

IP Address: 192.168.0.456
PING output: Request timed out.

Of course, you may modify the script to change the Subject and Body of the email as desired.

The script is attached to this article as a file called PING_IP_Addresses.ahk (Important Note: I updated the article so the file attached to the article is later than the version posted in the Comments). I tested it with Gmail.com as the SMTP server (along with its required parameters), but this may be easily changed. Each of the six lines of code that needs modification (for your file names, SMTP server, and email parameters) is marked with ";***" beginning in column 60 (other lines will need to be changed if your SMTP server is not Gmail).

After downloading the script and modifying it with your information, you may run it by simply double-clicking on it in Windows/File Explorer (or whatever file manager you use). Since its file type is AHK, AutoHotkey will be launched to process it. If you prefer, the file may be turned into an executable (an EXE file) via the AutoHotkey compiler, as explained in my AutoHotkey - Getting Started article.

When running the script, it displays a green progress bar in a dialog box that shows each IP address that it processes:

Progress-Bar.jpg
The percentage Done is based on the number of IP addresses in the list.

It is important to note that PING errors other than the most common five (as documented above) will not be detected by this utility. With that caveat, I hope that the utility is useful to the OP and other EE members.

If you find this article to be helpful, please click the thumbs-up icon below. This lets me know what is valuable for EE members and provides direction for future articles. Thanks very much! Regards, Joe

PING-IP-Addresses.ahk
 
5
Comment
  • 20
  • 18
39 Comments
 
LVL 5

Expert Comment

by:magento
Hi ,

Great article and ofcourse a free tool !!! .

It  would be great if you can explain the code .

Thanks,
Magento
0
 
LVL 57

Author Comment

by:Joe Winograd, EE MVE 2015&2016
Hi Magento,
Thanks for the nice words – I appreciate it! Good idea to explain the code. I'll incorporate that as part of some improvements I have in mind for the article and program. Regards, Joe
0
 
LVL 23

Expert Comment

by:Thomas Grassi
Hi

Like your article as Magento asked can we get explanation of code?

I am currently trying to use this and it is not working for me.

The output file is empty
I removed FileDelete,%PingResults%  so the output file would remain in the directory but it is empty. The IPadresslist.txt was created and has valid IP addresses.

Also no email being sent at all. I tried my gmail account I also have an internal exchange server that has port 25 open that is not working either.

I need a way to see the code process so I can see what is happening.

How do I do that?

I am new to this type of programming.

Thanks again

Tom
0
2017 Webroot Threat Report

MSPs: Get the facts you need to protect your clients.
The 2017 Webroot Threat Report provides a uniquely insightful global view into the analysis and discoveries made by the Webroot® Threat Intelligence Platform to provide insights on key trends and risks as seen by our users.

 
LVL 57

Author Comment

by:Joe Winograd, EE MVE 2015&2016
Hi Tom,
I hope to find the time soon to edit the article to include an explanation of the code. But in the meantime, let's see if we can troubleshoot your problem. For starters, the output file being empty signifies a problem with the PING command. Make sure the file you set in the PingResults variable is in a folder where you have write permission. The code in there now is this:

PingResults:="c:\folder\PingResults.txt"

What value did you put in there and is it writable?

Next, let's take a look at the PING command that gets built. The line of code that builds it is this:

PingCmd:="ping " . CurrentIP . ">" . PingResults

The dot operator in AHK means concatenate strings. If, for example, the CurrentIP variable has 192.168.0.123 in it and the PingResults variable has D:\temp\pingout.txt in it, then the PING command that gets created from the concatenation of the strings is this:

ping 192.168.0.123>D:\temp\pingout.txt

An easy debugging technique in AHK is to use the MsgBox command. I like to put "debug" in the title so they're easy to find later with my text editor. I suggest putting this line of code after the PingCmd:=... line of code:

msgbox,0,debug,%pingcmd%

This will let you know if the PING command is getting built properly. In addition, comment out the Progress bar line (with a semicolon in front) so that it doesn't cover up the MsgBox output. The MsgBox should look like this:
MsgBox with PING commandAlso, it is often convenient to exit the program during debugging sessions. This is done with the ExitApp command. For example, instead of seeing the MsgBox above for every line in the IPlist file, you could put an ExitApp command right after the MsgBox command, so you would see the MsgBox only the first time through the loop.

We'll work on the email issue after we get the PING command sorted. But, again, MsgBox will be your debugging friend. Regards, Joe
0
 
LVL 23

Expert Comment

by:Thomas Grassi
Hi Joe

Thanks for responding

To test the access to the c:\util\ping folder  from a command prompt
ping 192.168.1.00>c:\util\ping\pingresults.txt

wrote out the results

When I run the ping.ahk script it is empty

Program and folders are on on my local c drive which I have full rights to.
It is a Windows 7 Pro SP1 logged onto a Windows 2003 R2 Server Domain
My user account  has domain admin level rights.


I added the debug line you showed me

I was able to see one entry but the message window is behind the message window that shows the ipaddress being scanned.
Can I place the debug message window somewhere else? How ?

When I saw the one debug message not sure how I got it to move from behind the other window it show the command formed properly.

If you want to communicate about this by email let me know I will post my email for you.

Thanks

Tom
0
 
LVL 57

Author Comment

by:Joe Winograd, EE MVE 2015&2016
> I was able to see one entry but the message window is behind the message window that shows the ipaddress being scanned.

Hi Tom,
You must have missed my comment in the previous message about this:
In addition, comment out the Progress bar line (with a semicolon in front) so that it doesn't cover up the MsgBox output.
In other words, make that line of code this:

;   Progress,100,Be patient - this will take a moment,Working on %CurrentIP%,Pinging

I don't mind email, but I think it's better to keep the thread here so other members can take advantage of it. Regards, Joe
0
 
LVL 57

Author Comment

by:Joe Winograd, EE MVE 2015&2016
Tom,
Another way to do it is to use 4096 instead of 0 as the second parameter to MsgBox...it means always on top. So you can leave the Progress bar and change the MsgBox line to:

msgbox,4096,debug,%pingcmd%

Here's a complete description of the MsgBox command and all of its parameters:
http://l.autohotkey.net/docs/commands/MsgBox.htm

Makes it very easy to put up Yes/No and Yes/No/Cancel dialogs, as well as Hand, Question, Exclamation and Asterisk dialogs. I use all of these quite often in AHK programs. Regards, Joe
0
 
LVL 23

Expert Comment

by:Thomas Grassi
Ok got it now

I was able to see each line of code for the ping command and each ip address in the file ipaddresslist.txt file was presented

Still no output.
0
 
LVL 23

Expert Comment

by:Thomas Grassi
Does it only produce output if the ping errors out?

Or will it out successfull pings too?
0
 
LVL 57

Author Comment

by:Joe Winograd, EE MVE 2015&2016
Are you saying that the MsgBox is showing a properly formed PING command...something like:

ping 192.168.1.00>c:\util\ping\pingresults.txt

If so, then it would seem that the RunWait command is failing to run the PING command correctly. So let's try a one-line AHK program with a hard-coded RunWait:

RunWait %comspec% /c "ping 192.168.1.00>c:\util\ping\pingresults.txt",,Hide

If you remove ",,Hide", you'll see the command prompt window, not that it matters. Let me know what happens when you run the one-line program. Regards, Joe
0
 
LVL 57

Author Comment

by:Joe Winograd, EE MVE 2015&2016
Tom,
Our messages just crossed. It's simply running the PING command with the output redirected to a file. So the answer is yes...it will produce an output file on both successful and failed PINGs. In fact, that's how it determines success or failure...it analyzes the output of the PING command. Regards, Joe
0
 
LVL 23

Expert Comment

by:Thomas Grassi
I added the code to the line prior to exit it created the output fie but no output .

So I opened a command prompt and run this

C:\Util>%comspec% /c "ping 192.168.1.24>c:\util\ping\ping.test.txt"

It produced output

So the command works and the output is valid just not from the ahk executable

My windows 7 is 64 bit?  Could that be an issue?

Will this code work in Powershell so I can test ?
0
 
LVL 57

Author Comment

by:Joe Winograd, EE MVE 2015&2016
My W7 is also 64-bit and it works fine. Please do what I suggested. Make a one-line AHK program. Use any text editor (Notepad is fine) to put this one line of code in a file called whatever you want, such as <testping.ahk>:

RunWait %comspec% /c "ping 192.168.1.24>c:\util\ping\pingresults.txt",,Hide

Run that one-line program. What happens?
0
 
LVL 23

Expert Comment

by:Thomas Grassi
Joe,

Figured out someting here.

I had a folder named ahk that I had the ahk files stored

ping1,ahk
ping2.ahk
ping3.ahk

I have been making changes to the three of them to test.
I would compile then to give me the executable file

I thoughtt that would be ok

When I create testping.ahk and complled it and it only had one line the one you posted above.
I was still seeing the message box from the original ping executables.

So I moved he pingtest.ahk to nother folder then compiled it there and behold it created the output file ok.

So I then move the original ping1.ahk and did the same process now the output is almost working,
It now is only posting the last ip address from the ipaddresslist file.

We are getting somewhere now.
0
 
LVL 57

Author Comment

by:Joe Winograd, EE MVE 2015&2016
Tom,
Keep in mind that you don't have to compile in order run an AHK program. I generally don't compile unless I want to send someone an executable...or use it in an installer. But in nearly all cases I simply run an AHK program by double-clicking on the .ahk file (the source code). After installing AHK, the AHK executable (<AutoHotkey.exe>) will own the file type .ahk and will interpret/run the .ahk file. The compiler (<Ahk2Exe.exe>) is a completely different beast. So until you want/need the "final" executable, don't bother with compiling (and you may never need/want a .exe file). Regards, Joe
0
 
LVL 23

Expert Comment

by:Thomas Grassi
Joe

Thanks yes I just figured out that I can run the ahk file without compliing it.

I think I know why I am only getting the last ping results in the output file

When you write to a file from command line  you do

ping 192.168.69.24>c:\util\ping\pingresults2.txt

Then the second one is

ping 192.168.69.25>>c:\util\ping\pingresults2.txt


We need the >> for the remainder of ping results

Do you agree?  

If so what should I change?
0
 
LVL 57

Author Comment

by:Joe Winograd, EE MVE 2015&2016
> Do you agree?

No. That's not the way the program works. It's true that the ">>" operator means append, but the program handles each IP address separately, one at a time, via a looping technique (Loop,Parse,IPaddr,`n). In other words, it loops through all of the IP addresses in the %IPlist% file, PINGing each, one at a time; placing the output of each PING command, one at a time, in the output file by itself (hence, the ">" operator, not ">>"); then analyzing each set of PING output, one at a time, to determine success or failure of each IP address. Regards, Joe
0
 
LVL 23

Expert Comment

by:Thomas Grassi
Joe

I am in the EST Zone sorry for not responding back.

I changed this section to

Loop,Parse,IPaddr,`n
{
  If A_LoopField = ; reached the end of the IP address list
    Break
  CurrentIP:=A_LoopField
  Progress,100,Be patient - this will take a moment,Working on %CurrentIP%,Pinging
  PingCmd:="ping " . CurrentIP . ">>" . PingResults
;  msgbox,4096,debug,%pingcmd%
  RunWait %comspec% /c """%PingCmd%""",,Hide
  Loop

As you can see I added another > 

Now the output shows every ip address I attempted to ping.

Is that what is expected?

Can you post an example output file so I can compare?
0
 
LVL 57

Author Comment

by:Joe Winograd, EE MVE 2015&2016
Yes, that is expected, since the ">>" means append. But ">" is the correct operator for the logic built into the program, since it analyzes the PING results for each IP address one at a time. An example output file of a successful PING looks like this:

Pinging 192.168.0.123 with 32 bytes of data:
Reply from 192.168.0.123: bytes=32 time=2ms TTL=64
Reply from 192.168.0.123: bytes=32 time<1ms TTL=64
Reply from 192.168.0.123: bytes=32 time<1ms TTL=64
Reply from 192.168.0.123: bytes=32 time<1ms TTL=64

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

An example output file of a failed PING looks like this:

Pinging 192.168.0.456 with 32 bytes of data:
Reply from 192.168.0.101: Destination host unreachable.
Reply from 192.168.0.101: Destination host unreachable.
Reply from 192.168.0.101: Destination host unreachable.
Reply from 192.168.0.101: Destination host unreachable.

Ping statistics for 192.168.0.456:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Regards, Joe
0
 
LVL 23

Expert Comment

by:Thomas Grassi
Great

So now onto figuring out the email

How do we troubleshoot that code?
0
 
LVL 57

Author Comment

by:Joe Winograd, EE MVE 2015&2016
I'll get to the email issue next, but I want to be sure that I'm understanding you right on the PING issue, where it seems that you're now getting a non-empty results file from the PING command. Earlier you said:
The output file is empty
I removed FileDelete,%PingResults% so the output file would remain in the directory but it is empty.
But now you're saying that the output file is not empty – right?
0
 
LVL 23

Expert Comment

by:Thomas Grassi
Joe,

Yes the pingresults.txt file has all the information in it now.

So lets go with the email issue now.

Thanks
0
 
LVL 57

Author Comment

by:Joe Winograd, EE MVE 2015&2016
OK, great news! For the sake of sharing knowledge, can you explain why the results file was empty before but now has all of the output from the PING command in it? While you're working on a reply to that question, I'll work on an explanation of the email code. Regards, Joe
0
 
LVL 23

Expert Comment

by:Thomas Grassi
Joe,

When you write to an output file using command line to add additional lines you must apppend to the file otherwise it will get overlyed by just the last entry.

Looking forward to figuring out the email issue.
0
 
LVL 57

Author Comment

by:Joe Winograd, EE MVE 2015&2016
I still don't understand. The code needs the output file to be overwritten, not appended to. That is, it expects the results file to be overwritten (not appended to) with the redirected output of each PING command for each IP address (in the IPlist file). I don't understand how the results file could have been empty when you looked at it (after you removed "FileDelete,%PingResults%" so the output file remained in the directory).
0
 
LVL 23

Expert Comment

by:Thomas Grassi
Ok I see what you saying now.

I was just trying to troublshoot one step at a time.

I thought the file needed to be built then deleted.

So if I remove the second > then we should now continue on the email part.

I have an internal exchange server how would I configure this to work?
0
 
LVL 57

Author Comment

by:Joe Winograd, EE MVE 2015&2016
Tom,
The email code uses COM Objects (Component Object Model) and CDO (Collaboration Data Objects). If you want to learn more about them, web searches for those topics will give you plenty of info to study, including these helpful links:

http://en.wikipedia.org/wiki/Component_Object_Model
http://www.microsoft.com/com/default.mspx
http://msdn.microsoft.com/en-us/library/windows/desktop/ms690343%28v=vs.85%29.aspx

http://en.wikipedia.org/wiki/Collaboration_Data_Objects
http://www.microsoft.com/en-us/download/details.aspx?id=3671
http://www.ctimls.com/Support/KB/Error%20Fixes/Fix_CDO_Email_Error.htm

So will web searches for those same topics with "autohotkey" in the search, including these two important ones:

http://www.autohotkey.com/board/topic/56987-com-object-reference-autohotkey-l/
http://www.autohotkey.com/board/topic/60813-cdo-com-email-delivery-ahk-l/#p403177

Back to the code. These are the key lines that you have to review:

pmsg.From:="fromuser@gmail.com"
pmsg.To:="touser@whatever.com"
fields.smtpserver:="smtp.gmail.com"
fields.smtpserverport:=465
fields.smtpusessl:=True
fields.sendusing:=2
fields.smtpauthenticate:=1
fields.sendusername:="fromuser@gmail.com"
fields.sendpassword:="password"

You'll need to change at least some of these, and maybe all. I tested the code on W7/64-bit using the SMTP servers on Gmail (smtp.gmail.com) and Comcast mail (smtp.comcast.net) – both work perfectly! I suggest starting with the code as written, modified for your own Gmail account (if you don't have one, it's easy and free to sign up here). Make sure that works first.

I don't have an internal (or external) Exchange Server, so I can't help you with those settings, but you can surely find everything you need to know via a web search. I would be happy to help, but I have no way to test in an Exchange environment. Regards, Joe
0
 
LVL 23

Expert Comment

by:Thomas Grassi
Joe,

Thanks for the info.

I do have a gmail account.  

I tested it using my exchange account sending and receiving works.

From the script no email.
If there is and error in the script then I can not see it.

How can I trace that part of the script?

I am able to telnet to smtp.gmail.com 465
0
 
LVL 57

Author Comment

by:Joe Winograd, EE MVE 2015&2016
Tom,
Please post all of your code in the "If PingError" block of code. But, for privacy/security reasons, be sure to remove all of your usernames (there are three of them) and your password.

It should look something like this:

pmsg:=ComObjCreate("CDO.Message")
pmsg.From:="from-username-removed@gmail.com"
pmsg.To:="to-username-removed@gmail.com"
pmsg.Subject:="PING Error Notification"
pmsg.TextBody:="IP Address: " . CurrentIP . " PING output: " . PingLine
fields:=Object()
fields.smtpserver:="smtp.gmail.com"
fields.smtpserverport:=465
fields.smtpusessl:=True
fields.sendusing:=2
fields.smtpauthenticate:=1
fields.sendusername:="send-username-removed@gmail.com"
fields.sendpassword:="send-password-removed"
fields.smtpconnectiontimeout:=60
schema:="http://schemas.microsoft.com/cdo/configuration/"
pfld:=pmsg.Configuration.Fields
For field,value in fields
  pfld.Item(schema . field):=value
pfld.Update()
pmsg.Send()

Regards, Joe
0
 
LVL 23

Expert Comment

by:Thomas Grassi
Joe

This is my code

#Warn
SetBatchLines,-1
IPlist:="c:\util\ping\IPaddresslist.txt"                      ;***
PingResults:="c:\util\ping\PingResults.txt"                   ;***
PingErr1:="Destination host unreachable"
PingErr2:="Request Timed Out"
PingErr3:="TTL Expired in Transit"
PingErr4:="Unknown Host"

FileRead,IPaddr,%IPlist%
If (ErrorLevel=1)
{
  Msgbox,16,Fatal Error, Error trying to read`n%IPlist%
  ExitApp
}

Loop,Parse,IPaddr,`n
{
  If A_LoopField = ; reached the end of the IP address list
    Break
  CurrentIP:=A_LoopField
  Progress,100,Be patient - this will take a moment,Working on %CurrentIP%,Pinging
  PingCmd:="ping " . CurrentIP . ">" . PingResults
;  msgbox,4096,debug,%pingcmd%
  RunWait %comspec% /c """%PingCmd%""",,Hide
  Loop
  {
     PingError:=false
     FileReadLine,PingLine,%PingResults%,%A_Index%
     If (ErrorLevel=1)
       Break
     IfInString,PingLine,%PingErr1%
     {
       PingError:=true
       Break
     }
     IfInString,PingLine,%PingErr2%
     {
       PingError:=true
       Break
     }
     IfInString,PingLine,%PingErr3%
     {
       PingError:=true
       Break
     }
     IfInString,PingLine,%PingErr4%
     {
       PingError:=true
       Break
     }
  }
  Progress,Off
  If PingError
  {
    pmsg:=ComObjCreate("CDO.Message")
    pmsg.From:="me@gmail.com"                    ;***
    pmsg.To:="myhome@mydomain.com"                      ;***
    pmsg.Subject:="PING Error Notification"
    pmsg.TextBody:="IP Address: " . CurrentIP . " PING output: " . PingLine
    fields:=Object()
    fields.smtpserver:="smtp.gmail.com"
    fields.smtpserverport:=465
    fields.smtpusessl:=True
    fields.sendusing:=2
    fields.smtpauthenticate:=1
    fields.sendusername:="me@gmail.com"          ;***
    fields.sendpassword:="secret"                        ;***
    fields.smtpconnectiontimeout:=60
    schema:="http://schemas.microsoft.com/cdo/configuration/"
    pfld:=pmsg.Configuration.Fields
    For field,value in fields
      pfld.Item(schema . field):=value
    pfld.Update()
    pmsg.Send()
  }
}
FileDelete,%PingResults%
ExitApp
0
 
LVL 57

Author Comment

by:Joe Winograd, EE MVE 2015&2016
Your code looks good. Are you sure there's a bad IP address in the IPlist file? The email code runs only when a bad IP is detected...it does not run on good ones. So to test the email code, make sure there's an unreachable IP address in the list. Also, put a MsgBox command before the first "pmsg:=" line (but after the left brace) so you'll know that a bad IP was detected and that the "If PingError" branch of code was executed. In other words, we need to know if the email code is not working or if it is not even being executed.
0
 
LVL 23

Expert Comment

by:Thomas Grassi
Joe,

I added a bad ip address to my iplist file and I received the email

So it is working thats great

I was thinking I would get a report of all the ip addresses in the iplist file.

I guess I could run this every so often to make sure all is good only if I have a failure I would get an email.

Do you run this a a scheduled task?
0
 
LVL 57

Author Comment

by:Joe Winograd, EE MVE 2015&2016
I added a bad ip address to my iplist file and I received the email

So it is working thats great
Tom, that's terrific news!

I was thinking I would get a report of all the ip addresses in the iplist file.
It would not be difficult to do that, but the original question for which I wrote the program wanted an email only in the case of a PING failure.

I guess I could run this every so often to make sure all is good only if I have a failure I would get an email.
Yes, I'm sure that's what the original asker was looking for.

Do you run this as a scheduled task?
I do not, but it certainly could be.
0
 
LVL 23

Expert Comment

by:Thomas Grassi
Joe,

Thanks for all your help on this.
0
 
LVL 57

Author Comment

by:Joe Winograd, EE MVE 2015&2016
Tom,
You're welcome. I'm glad the utility is working for you. I hope you find it to be useful. Regards, Joe
0
 
LVL 23

Expert Comment

by:Thomas Grassi
Joe,

Quick question.

Can we change the script to send only one email with all the errors?
I set up the ipaddresslist.txt file to include all my network addresses
10.238.122.1  thru 10.238.122.254

I know I do not have all these used but it sends me an email for each one that is in error.

After about 20 emails I stopped the run.

Thanks

Tom
0
 
LVL 57

Author Comment

by:Joe Winograd, EE MVE 2015&2016
Tom,
That is an excellent idea! And it is easy to do. The basic idea is to stay inside the loop that PINGs each IP address and append (concatenate) the text of the email body each time a bad IP is found. If at least one bad IP is found, then the PingError variable will be true; otherwise, false. Then exit the loop and if PingError is true, send a single email that has the body which was built up with all of the bad PINGs. Here's an example of the single email body from my testing of the new code:

The following PING errors occurred:
IP Address: 192.168.0.123
 PING output: Reply from 192.168.0.101: Destination host unreachable.
IP Address: 192.168.0.456
 PING output: Ping request could not find host 192.168.0.456. Please check the name and try again.
IP Address: 192.168.0.789
 PING output: Ping request could not find host 192.168.0.789. Please check the name and try again.

Attached to this post is a new version of the script that sends just a single email. Please try it and let me know how it goes. Note that I added a fifth error check – for PING output that says "Ping request could not find host". After you've tested the new version and let me know that it's working correctly, I'll edit the article accordingly. Thanks again for the terrific idea! Regards, Joe
PING-IP-Addresses-send-just-one-.ahk
0
 
LVL 23

Expert Comment

by:Thomas Grassi
Joe,

Just tested,

Works great two errors in my test and only one email.

My next phase will be to get email to get thru my exchange server.

Thanks again

If I get the exchange server code working I will post here for you.
0
 
LVL 57

Author Comment

by:Joe Winograd, EE MVE 2015&2016
Tom,
Great to hear that the new code works for you. Documenting the settings needed for Exchange will be very helpful. Good luck!
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Join & Write a Comment

Video by: Mark
This lesson goes over how to construct ordered and unordered lists and how to create hyperlinks.
In this video we outline the Physical Segments view of NetCrunch network monitor. By following this brief how-to video, you will be able to learn how NetCrunch visualizes your network, how granular is the information collected, as well as where to f…
Suggested Courses
Course of the Month14 days, 23 hours left to enroll

Keep in touch with Experts Exchange

Tech news and trends delivered to your inbox every month