a) Ping can't check hosts are on same network
b) Ping is done with an address , the command doesn't know whether it is pinging to a server or router or NAS
C)This is the answer , if there is no physical connection ping won't work , ping directly request the remote ip hosts to give response, ping can work both on lan and wan ,you can ping google facebook
d)ping can't measure physical distances , case of electromagnetic signals travel the speed of light and how it calculate :) just 100 metres or 1000 metres or more
there are sub commands for ping ,
-t Pings the specified host until stopped.
To see statistics and continue - Type Control-Break;
To stop - press Ctrl + C.
-a Resolve addresses to hostnames.
-n count Number of echo requests to send.
-l size Send buffer size.
-f Set Don't Fragment flag in packet (IPv4-only).
-i TTL Time To Live.
-v TOS Type Of Service (IPv4-only. This setting has been deprecated and has no effect on the type of service field in the IP Header).
-r count Record route for count hops (IPv4-only).
-s count Timestamp for count hops (IPv4-only).
-j host-list Loose source route along host-list (IPv4-only).
-k host-list Strict source route along host-list (IPv4-only).
-w timeout Timeout in milliseconds to wait for each reply.
-R Use routing header to test reverse route also (IPv6-only).
Per RFC 5095 the use of this routing header has been deprecated. Some systems may drop echo requests if this header is used.
-S srcaddr Source address to use.
-4 Force using IPv4.
-6 Force using IPv6.