regarding net

how we can find whether net is connected or diconnected.

Just ping a remote ip address and the you can find out is connected or not

i want find this connection using c program.
i tried this
int p;
p=popen("ping google.com -c 1","r");
pclose(p);
after completion of this how can i get the data from the shell so tht i can find whther net is connected or not

phani_sree, I suggest reading up on the man page of popen. It returns a file pointer. And since you want to read the output of the command, you are supposed to fread/fgets/fscanf using that file pointer.

To get a carton of milk from the refrigerator, you:

  1. open the door
  2. take out the milk
  3. close the door

What you are doing is analogous to:

  1. open the door
  2. close the door

arunkumar_mca . I think your joking him man. Let's say that remote IP address , has a firewall rule ( ACL on a router ) , or something with Iptable on Linux , fw ( on FreeBSD ) , you'll got only : request time out .. D you mean me ? your disconnected ? no really ..

If you are an amatour .. maybe ..

You can ping your gateway/gateway's , to see if your connected to the network ( Internet ) , and you can use raw socket's ..

Cheer's , hope it was helpful .. :slight_smile:

!_30, please read the rules of this site.

Please do not make impolite/sarcastic comments about others or their posts.

Ping your own gateway? Which? A server system could easily have more than one network card and complex network routing. Pinging some other site lets the system handle the choice of routes for you. Some will block it, yes, so just pick one that does not!

Try system() instead of popen(). The return value will be zero if connected to the net, nonzero if not. Also investigate the options for ping to limit the number of pings to one, and change the timeout to your preference:

if(system("ping -c 1 -w 1 yahoo.com > /dev/null 2> /dev/null") != 0)
  fprintf(stderr,"Net is down!\n");
else
  fprintf(stderr,"Net is up\n");

The file redirection just prevents ping from polluting the output with unnecessary stuff.

You could also open a network socket to, say, yahoo.com port 80. If you can do that, the net is up. Not as easy to configure timeouts for that though.

thank u corona.
my problem was solved with ur code.
but is there any way to do this without using ping
thank u very much.
sree

Well, you could always try the other method !_30 and I suggested?

sorry for disturbing u
i am new to this networking concept.
that's y aim facing some problems.
how we can ping the gateways,
how we can find using raw socket.
please provide me some example,then i can easily in my way
sree

i want know whether net is disconnected or not hoe can i do this without pings
!-30 told me one solution.
so please can anyone explain me in detail
the solution is

You can ping your gateway/gateway's , to see if your connected to the network ( Internet ) , and you can use raw socket's ..

thank u in advance
sree