Jump to content
Sign in to follow this  
CarVeR

Internet Ping Check help.

Recommended Posts

CarVeR

Hi, here i am again with a problem on a second script.

I am trying to make a script which pings several websites to check i am connected to the internet. If i am not connected to the internet it will then run a macro script to reset my internet. But for now i have made it pop up with a message because i don't want it to run the macro until i know it works. The program currently runs on a constant loop and checks every 30 minutes, so that is working well.

The reason i have 3 different websites is to make sure i am 100% connected incase any fail (i will be using all of my internet whilst it pings).

I have tried the script out whilst using my full download and so far the message box pops up, even though i know for sure that i am 100% connected.

I have tried swapping the "$ping > 0" to "$ping > 1" but the message box still pops up.

Here is my code, i think it has many many errors:

While 1
$ping = Ping("www.google.com")
If $ping > 0 then 
    $internet = True
    EndIf
$ping = Ping("www.yahoo.com")
If $ping > 0 Then
    $internet = True
    EndIf
$ping = Ping("www.bing.com")
If $ping > 0 Then
    $internet = True
    EndIf
If $ping > 1 Then
    $internet = False
    EndIf
If $internet = False Then
    msgBox (0, "internet", "internet not active")
EndIf
sleep(1800000)
WEnd

I have read somewhere that to ping multiple websites i must put the ping command inside an array and loop it? I am unsure how to do this, i don't even know where to start!

Thank you for reading

c4rv3r

Share this post


Link to post
Share on other sites
martin

Hi, here i am again with a problem on a second script.

I am trying to make a script which pings several websites to check i am connected to the internet. If i am not connected to the internet it will then run a macro script to reset my internet. But for now i have made it pop up with a message because i don't want it to run the macro until i know it works. The program currently runs on a constant loop and checks every 30 minutes, so that is working well.

The reason i have 3 different websites is to make sure i am 100% connected incase any fail (i will be using all of my internet whilst it pings).

I have tried the script out whilst using my full download and so far the message box pops up, even though i know for sure that i am 100% connected.

I have tried swapping the "$ping > 0" to "$ping > 1" but the message box still pops up.

Here is my code, i think it has many many errors:

While 1
$ping = Ping("www.google.com")
If $ping > 0 then 
 $internet = True
    EndIf
$ping = Ping("www.yahoo.com")
If $ping > 0 Then
    $internet = True
    EndIf
$ping = Ping("www.bing.com")
If $ping > 0 Then
    $internet = True
    EndIf
If $ping > 1 Then
    $internet = False
    EndIf
If $internet = False Then
    msgBox (0, "internet", "internet not active")
EndIf
sleep(1800000)
WEnd

I have read somewhere that to ping multiple websites i must put the ping command inside an array and loop it? I am unsure how to do this, i don't even know where to start!

Thank you for reading

c4rv3r

You have

If $ping > 1 Then
    $internet = False
    EndIf

$ping will certainly be greater than 1 so why did you decide that meant there was no connection?

I think maybe you need to set $internet = False at the start of the while loop and miss out that test.


Serial port communications UDF Includes functions for binary transmission and reception.printing UDF Useful for graphs, forms, labels, reports etc.Add User Call Tips to SciTE for functions in UDFs not included with AutoIt and for your own scripts.Functions with parameters in OnEvent mode and for Hot Keys One function replaces GuiSetOnEvent, GuiCtrlSetOnEvent and HotKeySet.UDF IsConnected2 for notification of status of connected state of many urls or IPs, without slowing the script.

Share this post


Link to post
Share on other sites
CarVeR

Ah, i understand the command a little better now, thank you. I was being thick thinking 0 was on and 1 was off and vice-versa.

I've got rid of the "ping > 1" and replaced it with ElseIf. Do you think this will work better?

While 1
$ping = Ping("www.google.com")
If $ping > 0 then 
    $internet = True
    EndIf
$ping = Ping("www.yahoo.com")
If $ping > 0 Then
    $internet = True
    EndIf
$ping = Ping("www.bing.com")
If $ping > 0 Then
    $internet = True
ElseIf $internet = False Then
    msgBox (0, "internet", "internet not active")
    EndIf
sleep(1800000)
WEnd

Share this post


Link to post
Share on other sites
darkjohn20

AdlibRegister("_CheckConnection", 1800000) ;Call every 30 minutes

While 1
    Sleep(10)
WEnd

Func _CheckConnection()
    $TotalPing = Ping("www.google.com") + Ping("www.yahoo.com") + Ping("www.bing.com")
    If $TotalPing > 0 Then
        ;You are connected
    Else
        MsgBox(0, "Error", "You are not connected to the internet!", 5)
EndFunc

Edited by darkjohn20

Share this post


Link to post
Share on other sites
JohnOne

Heres my go

Global $bInternet = True

While 1
    If $bInternet Then
        Sleep(60000 * 30)
        _TestInternet()
    Else
        _MyMacro()
    EndIf
WEnd

Func _TestInternet()
    If Ping("www.google.com") > 0 Or Ping("www.yahoo.com") > 0 Or Ping("www.bing.com") > 0 Then
        Return True
    Else
        Return False
    EndIf
EndFunc   ;==>_TestInternet

AutoIt Absolute Beginners    Require a serial    Pause Script    Video Tutorials by Morthawt   ipify 

Monkey's are, like, natures humans.

Share this post


Link to post
Share on other sites
CarVeR

@darkjohn20

@JohnOne

Looking at both of your versions makes me realise how in-superior my coding is! Excellent designs! Both scripts are fantastic. Thank you for your input, i am learning alot looking at your scripts. I am really enjoying AutoIt, its so capable, as capable as any other language!

CarVeR

Share this post


Link to post
Share on other sites
JohnOne

Glad you are happy, and dont forget there is more than one way to skin a cat.

you could add this test if you need to be super sure all three of those search engines arnt offline

#include <INet.au3>
If _INetGetSource("http://www.whatismyip.com/automation/n09230945.asp", True) Then
    MsgBox(64, "Yay", "Connected")
Else
    MsgBox(16, "Booo", "Not Connected")
EndIf

or

#include <INet.au3>
If _GetIP() Then
    MsgBox(64, "Yay", "Connected")
Else
    MsgBox(16, "Booo", "Not Connected")
EndIf

or both I suppose

Not in the above format of course, but you get the idea.


AutoIt Absolute Beginners    Require a serial    Pause Script    Video Tutorials by Morthawt   ipify 

Monkey's are, like, natures humans.

Share this post


Link to post
Share on other sites
darkjohn20

In my opinion it's better to use the Adlib functions because I hate long sleeps. I'm not sure if one is better though.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.