| Author |
Message |
Argolance

Joined: 06 Jan 2008 Posts: 1360 Location: PORT-BRILLET (Mayenne - France)
|
Posted: Tue 05 Mar 2013, 10:04 Post subject:
Verify if Internet connection is duly active? [SOLVED] |
|
Hello,
Before executing a script, I need a (simple) command line to know if and be absolutely sure that user's Internet connexion is actually active...
Thank you.
Cordialement.
Last edited by Argolance on Tue 05 Mar 2013, 11:35; edited 1 time in total
|
|
Back to top
|
|
 |
L18L
Joined: 19 Jun 2010 Posts: 1696 Location: Burghaslach, Germany
|
Posted: Tue 05 Mar 2013, 11:30 Post subject:
Verify if Internet connection is duly active? |
|
| Code: | | [ "`ifconfig | head -n 1| awk '{print $1}'`" = "lo" ] && echo no || echo oui |
lo is local loopback
if this is at first place then no other connection exists
---
edited: forget it, take vovchik's
Last edited by L18L on Tue 05 Mar 2013, 11:56; edited 1 time in total
|
|
Back to top
|
|
 |
Argolance

Joined: 06 Jan 2008 Posts: 1360 Location: PORT-BRILLET (Mayenne - France)
|
Posted: Tue 05 Mar 2013, 11:34 Post subject:
|
|
Thanks you!
|
|
Back to top
|
|
 |
vovchik

Joined: 23 Oct 2006 Posts: 1229 Location: Ukraine
|
Posted: Tue 05 Mar 2013, 11:48 Post subject:
|
|
Dear L18L,
That isn't true in my case:
| Code: |
root$ [~]-> ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:976 errors:0 dropped:0 overruns:0 frame:0
TX packets:976 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:71960 (70.2 KiB) TX bytes:71960 (70.2 KiB)
wlan0 Link encap:Ethernet HWaddr D8:F8:BA:D8:F8:BA
inet addr:192.168.0.16 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:93463 errors:0 dropped:0 overruns:0 frame:0
TX packets:98017 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:53415279 (50.9 MiB) TX bytes:12026226 (11.4 MiB)
|
This seems to work for me:
| Code: | #!/usr/bin/bash
# Test for network conection
for interface in $(ls /sys/class/net/ | grep -v lo);
do
if [[ "$(cat /sys/class/net/$interface/operstate)" == "up" ]]; then
echo "Online: $interface"
OnLine=1
fi
done
if ! [ $OnLine ]; then echo "Not Online" > /dev/stderr; exit; fi
|
or
There are also some nice methods using netstat -punt or netstat -natu and lsof -i.
With kind regards,
vovchik
|
|
Back to top
|
|
 |
L18L
Joined: 19 Jun 2010 Posts: 1696 Location: Burghaslach, Germany
|
Posted: Tue 05 Mar 2013, 11:54 Post subject:
|
|
@Argolance,
I am sorry
fast solutions are not always right solutions
@vovchik,
your script works for me too
Last edited by L18L on Tue 05 Mar 2013, 12:11; edited 1 time in total
|
|
Back to top
|
|
 |
Argolance

Joined: 06 Jan 2008 Posts: 1360 Location: PORT-BRILLET (Mayenne - France)
|
Posted: Tue 05 Mar 2013, 12:11 Post subject:
|
|
@L18L
Your code line worked for me!
Don't!
Thank you to both of you.
Cordialement.
|
|
Back to top
|
|
 |
L18L
Joined: 19 Jun 2010 Posts: 1696 Location: Burghaslach, Germany
|
Posted: Tue 05 Mar 2013, 12:22 Post subject:
Verify if Internet connection is duly active?[otherSOLUTION] Subject description: one liner |
|
| Code: | | [ $(grep up /sys/class/net/*/operstate) ] && echo online |
other values in operstate:
-down
-unknown (for lo)
|
|
Back to top
|
|
 |
vovchik

Joined: 23 Oct 2006 Posts: 1229 Location: Ukraine
|
Posted: Tue 05 Mar 2013, 12:32 Post subject:
|
|
Dear L18L,
I like your last one - works nicely and is a one-liner:)
With kind regards,
vovchik
|
|
Back to top
|
|
 |
Argolance

Joined: 06 Jan 2008 Posts: 1360 Location: PORT-BRILLET (Mayenne - France)
|
Posted: Tue 05 Mar 2013, 12:42 Post subject:
|
|
| Quote: | | I like your last one - works nicely and is a one-liner | Yes indeed!
|
|
Back to top
|
|
 |
Argolance

Joined: 06 Jan 2008 Posts: 1360 Location: PORT-BRILLET (Mayenne - France)
|
Posted: Tue 23 Apr 2013, 06:16 Post subject:
|
|
Hello,
While running a fresh install of Puppy on a friend's PC, I succeeded in setting the wifi Internet connection and was able to go on the Internet with the web browser... But the command used in one of my scripts:
| Code: | if [ $(grep down /sys/class/net/*/operstate) ]; then
Xdialog --title "$(eval_gettext '$app Installation') - $(gettext 'Information')" --icon /usr/local/lib/X11/pixmaps/info.png --msgbox "$(eval_gettext 'Your internet connection seems not to be active.
Please, set it up before downloading/installing $app!')" 0 0
else
[...] |
... that lets user download applications from a remote server, said the connexion was not active...
So it seems this command is not absolutely sure: what I am obviously expecting for!
Is there any other command (using ping ?) doing this "properly"?
Cordialement.
|
|
Back to top
|
|
 |
Argolance

Joined: 06 Jan 2008 Posts: 1360 Location: PORT-BRILLET (Mayenne - France)
|
Posted: Tue 23 Apr 2013, 09:35 Post subject:
|
|
Hello,
Found this which works fine:
| Code: | #!/bin/sh
curl -D- -o /dev/null -s http://xxxxx.net
if [[ $? == 0 ]]; then
echo "yes"
else
echo "no"
fi |
Cordialement!
|
|
Back to top
|
|
 |
L18L
Joined: 19 Jun 2010 Posts: 1696 Location: Burghaslach, Germany
|
Posted: Tue 23 Apr 2013, 09:44 Post subject:
|
|
Found this:
| Code: | PING="`ping -c 1 xxxxx.net `"
[ "${PING:0:4}" = "PING" ] && echo online |
Not every server responds on pings
|
|
Back to top
|
|
 |
Argolance

Joined: 06 Jan 2008 Posts: 1360 Location: PORT-BRILLET (Mayenne - France)
|
Posted: Tue 23 Apr 2013, 09:50 Post subject:
|
|
OK, thanks!
|
|
Back to top
|
|
 |
|