The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > High Level Programming
Google UNIX.COM


High Level Programming Post questions about C, C++, Java, SQL, and other programming languages here.

Reply
 
Submit Tools LinkBack Thread Tools Display Modes
  #1  
Old 11-14-2006
Registered User
 

Join Date: Nov 2006
Posts: 52
regarding net

how we can find whether net is connected or diconnected.
Reply With Quote
Forum Sponsor
  #2  
Old 11-14-2006
Registered User
 

Join Date: Oct 2004
Posts: 235
Just ping a remote ip address and the you can find out is connected or not
Reply With Quote
  #3  
Old 11-14-2006
Registered User
 

Join Date: Nov 2006
Posts: 52
thank u

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

Last edited by phani_sree; 11-15-2006 at 12:03 AM.
Reply With Quote
  #4  
Old 11-15-2006
blowtorch's Avatar
Supporter
 
Join Date: Dec 2004
Location: Singapore
Posts: 2,326
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
Reply With Quote
  #5  
Old 11-15-2006
!_30's Avatar
Registered User
 

Join Date: Sep 2006
Location: Romania , Ploiesti
Posts: 37
Quote:
Just ping a remote ip address and the you can find out is connected or not
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 ..
Reply With Quote
  #6  
Old 11-15-2006
blowtorch's Avatar
Supporter
 
Join Date: Dec 2004
Location: Singapore
Posts: 2,326
!_30, please read the rules of this site.
Quote:
(1) No flames, shouting (all caps), sarcasm, bullying, profanity or arrogant posts.

(2) No negative comments about others or impolite remarks.
Please do not make impolite/sarcastic comments about others or their posts.
Reply With Quote
  #7  
Old 11-15-2006
Registered User
 

Join Date: Aug 2005
Location: Saskatchewan
Posts: 979
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:
Code:
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.

Last edited by Corona688; 11-15-2006 at 07:55 AM.
Reply With Quote
Google The UNIX and Linux Forums
Reply

Tags
linux

Thread Tools
Display Modes




All times are GMT -7. The time now is 07:15 AM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited.
The UNIX and Linux Forums Content Copyright ©1993-2008. All Rights Reserved.Ad Management by RedTyger Visit The Complex Event Processing Blog

Content Relevant URLs by vBSEO 3.2.0