Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Pinging Network Server
#1
Hi, I am looking for a function that can return the ping in milliseconds. I have made one using windows ping command through a .bat file, but that really wastes time having to run bat file, output to text file and then .getfile in QM. Is there another way to make a function that returns the ping? Thanks in advance.
#2
Code:
Select All      Help
Wsh.WshShell objShell._create
Wsh.WshExec objScriptExec = objShell.Exec("ping -n 3 -w 1000 www.quickmacros.com")
str s=objScriptExec.StdOut.ReadAll
s.replacerx("[[]]+" "[]")
mes s

To get just time, use IntPing

Code:
Select All      Help
long t1=perf
if(!IntPing("http://www.quickmacros.com")) end "no response"
long t2=perf
int i=t2-t1/1000
out i
#3
Function IntPing2
Code:
Select All      Help
function# [$url]

;Attempts to connect to url.
;If successful, returns the time (ms) spent to connect. If cannot connect, returns 0.



long t1=perf
if(!inet.InternetCheckConnection(url inet.FLAG_ICC_FORCE_CONNECTION 0)) ret
long t2=perf
int i=t2-t1/1000
if(!i) i=1
ret i

Example
Code:
Select All      Help
out IntPing2("http://www.quickmacros.com")
#4
ddos anyone? :lol:
A new blog on QM coding and automation.

The Macro Hook
#5
HAHA I LOVE IT!!! Thank you. This is the best piece of software I have ever owned. Well the first that I ever owned. Worth every penny. Thanks.
#6
Interesting...I really like the first solution. I can use that for other window commands too, but the second solution is even better. simple and easier to implement. Thanks.
#7
Yeah. you know i just went through a tonne of old 3.5 disks the other night. and threw away hundreds of dollars of software i bought and havent used in 10 years or MORE!

thus my opinion is that you dont buy software you lease it. But this one is definitely worth the $40!
A new blog on QM coding and automation.

The Macro Hook
#8
How can I ping to ip direction?

example: IntPing2("10.3.6.32")
#9
Lucas Wrote:How can I ping to ip direction?

example: IntPing2("10.3.6.32")

You found a solution?
#10
I think this one is good, but need help with translating for qm
https://stackoverflow.com/questions/306 ... p-and-port

This snippet will work for testing a server listening to a given IP and port with the TCP protocol.

Futhermore, you could also try to ping the IP:

Ping ping = new Ping();
PingReply pingReply = ping.Send("192.168.0.200");

if (pingReply.Status == IPStatus.Success)
{
//Server is alive
}

Ping class is located in System.Net.NetworkInformation.
#11
I guess, the .NET Ping does the same as the Ping function in Archive.qml.
Collected QM apps, functions, samples
#12
I am sorry, but which function is it there?

What i need i a simple solution to check if my given IP is online or not.
#13
It is function named Ping.

C# version
Macro Scripting C#, call single static function2
Code:
Select All      Help
str R=CsFunc("" "www.example.com")
out R ;;0 is Success


#ret
//C# code
using System;
using System.Net.NetworkInformation;

public class Test
{
public static IPStatus Ping2(string s)
{
try {
;Ping ping = new Ping();
;PingReply pingReply = ping.Send(s);
;return pingReply.Status;
}
catch(Exception ex) { Console.WriteLine(ex.Message); return IPStatus.Unknown; }
}
}

/*
,public enum IPStatus
,{
,,//
,,// Summary:
,,//     The ICMP echo request failed for an unknown reason.
,,Unknown = -1,
,,//
,,// Summary:
,,//     The ICMP echo request succeeded; an ICMP echo reply was received. When you get
,,//     this status code, the other System.Net.NetworkInformation.PingReply properties
,,//     contain valid data.
,,Success = 0,
,,//
,,// Summary:
,,//     The ICMP echo request failed because the network that contains the destination
,,//     computer is not reachable.
,,DestinationNetworkUnreachable = 11002,
,,//
,,// Summary:
,,//     The ICMP echo request failed because the destination computer is not reachable.
,,DestinationHostUnreachable = 11003,
,,//
,,// Summary:
,,//     The ICMP echo request failed because the destination computer that is specified
,,//     in an ICMP echo message is not reachable, because it does not support the packet's
,,//     protocol. This value applies only to IPv4. This value is described in IETF RFC
,,//     1812 as Communication Administratively Prohibited.
,,DestinationProtocolUnreachable = 11004,
,,//
,,// Summary:
,,//     The ICMPv6 echo request failed because contact with the destination computer
,,//     is administratively prohibited. This value applies only to IPv6.
,,DestinationProhibited = 11004,
,,//
,,// Summary:
,,//     The ICMP echo request failed because the port on the destination computer is
,,//     not available.
,,DestinationPortUnreachable = 11005,
,,//
,,// Summary:
,,//     The ICMP echo request failed because of insufficient network resources.
,,NoResources = 11006,
,,//
,,// Summary:
,,//     The ICMP echo request failed because it contains an invalid option.
,,BadOption = 11007,
,,//
,,// Summary:
,,//     The ICMP echo request failed because of a hardware error.
,,HardwareError = 11008,
,,//
,,// Summary:
,,//     The ICMP echo request failed because the packet containing the request is larger
,,//     than the maximum transmission unit (MTU) of a node (router or gateway) located
,,//     between the source and destination. The MTU defines the maximum size of a transmittable
,,//     packet.
,,PacketTooBig = 11009,
,,//
,,// Summary:
,,//     The ICMP echo Reply was not received within the allotted time. The default time
,,//     allowed for replies is 5 seconds. You can change this value using the Overload:System.Net.NetworkInformation.Ping.Send
,,//     or Overload:System.Net.NetworkInformation.Ping.SendAsync methods that take a
,,//     timeout parameter.
,,TimedOut = 11010,
,,//
,,// Summary:
,,//     The ICMP echo request failed because there is no valid route between the source
,,//     and destination computers.
,,BadRoute = 11012,
,,//
,,// Summary:
,,//     The ICMP echo request failed because its Time to Live (TTL) value reached zero,
,,//     causing the forwarding node (router or gateway) to discard the packet.
,,TtlExpired = 11013,
,,//
,,// Summary:
,,//     The ICMP echo request failed because the packet was divided into fragments for
,,//     transmission and all of the fragments were not received within the time allotted
,,//     for reassembly. RFC 2460 (available at www.ietf.org) specifies 60 seconds as
,,//     the time limit within which all packet fragments must be received.
,,TtlReassemblyTimeExceeded = 11014,
,,//
,,// Summary:
,,//     The ICMP echo request failed because a node (router or gateway) encountered problems
,,//     while processing the packet header. This is the status if, for example, the header
,,//     contains invalid field data or an unrecognized option.
,,ParameterProblem = 11015,
,,//
,,// Summary:
,,//     The ICMP echo request failed because the packet was discarded. This occurs when
,,//     the source computer's output queue has insufficient storage space, or when packets
,,//     arrive at the destination too quickly to be processed.
,,SourceQuench = 11016,
,,//
,,// Summary:
,,//     The ICMP echo request failed because the destination IP address cannot receive
,,//     ICMP echo requests or should never appear in the destination address field of
,,//     any IP datagram. For example, calling Overload:System.Net.NetworkInformation.Ping.Send
,,//     and specifying IP address "000.0.0.0" returns this status.
,,BadDestination = 11018,
,,//
,,// Summary:
,,//     The ICMP echo request failed because the destination computer that is specified
,,//     in an ICMP echo message is not reachable; the exact cause of problem is unknown.
,,DestinationUnreachable = 11040,
,,//
,,// Summary:
,,//     The ICMP echo request failed because its Time to Live (TTL) value reached zero,
,,//     causing the forwarding node (router or gateway) to discard the packet.
,,TimeExceeded = 11041,
,,//
,,// Summary:
,,//     The ICMP echo request failed because the header is invalid.
,,BadHeader = 11042,
,,//
,,// Summary:
,,//     The ICMP echo request failed because the Next Header field does not contain a
,,//     recognized value. The Next Header field indicates the extension header type (if
,,//     present) or the protocol above the IP layer, for example, TCP or UDP.
,,UnrecognizedNextHeader = 11043,
,,//
,,// Summary:
,,//     The ICMP echo request failed because of an ICMP protocol error.
,,IcmpError = 11044,
,,//
,,// Summary:
,,//     The ICMP echo request failed because the source address and destination address
,,//     that are specified in an ICMP echo message are not in the same scope. This is
,,//     typically caused by a router forwarding a packet using an interface that is outside
,,//     the scope of the source address. Address scopes (link-local, site-local, and
,,//     global scope) determine where on the network an address is valid.
,,DestinationScopeMismatch = 11045
,}
*/
#14
I don't get how to use IP Adress instead of "www.example.com"
Just simple checking if IP example 192.168.20.40 is online or not.
#15
For "192.168.20.40" returns error code 11013, but for http://www.example.com IP "93.184.216.34" returns 0.
#16
Sorry.
Zero is success i had not on mind.
out R ;;0 is Success

Thanks G.


Forum Jump:


Users browsing this thread: 1 Guest(s)