Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: odysseus - 17.06.13 - klo:10.57

Otsikko: Onko nettiyhteyttä? -ohjelmallisesti [Ratkaistu]
Kirjoitti: odysseus - 17.06.13 - klo:10.57
Eli nyt tuli eteen semmoinen tilanne, jossa pitäisi ohjelmallisesti selvittää onko koneessa nettiyhteyttä vai ei.

Tämä mieluiten C:llä tai PHP:llä, kun noilla on jo softaa tehty ja ei viitsisi ottaa muita tekniikoita "sotkemaan".

Tuleeko mieleen mikä olisi paras tapa selvittää homma? Ei viitsisi alkaa mitään socketteja väsäämään C:llä, eli saako tuon parametrin jostain koneelta kaivetua helposti.

Kyseessä on joko LAN tai WLAN -yhteys (jos mokkulan saa tietää samalla, niin OK).
Otsikko: Vs: Onko nettiyhteyttä? -ohjelmallisesti
Kirjoitti: _Pete_ - 17.06.13 - klo:12.33
Pari vaihtoehtoa mitkä tulevat ekana mieleen:

1) ping -c1 google.fi
-> jos vastaa = netti

2) tutkii /proc/net
-> sieltä varmaankin löytyy tieto mitkä interfacet ovat ylhäällä ja online

Otsikko: Vs: Onko nettiyhteyttä? -ohjelmallisesti
Kirjoitti: odysseus - 17.06.13 - klo:17.18
Rupesin ajattelemaan samaa, eli alunperin liian vaikeasti.

Tässä kyseisessä tapauksessa kun pitää;

a) hakea data netistä
tai jos ei onnistu
b) hakea se kovalevyltä

No, HÖ! Ratkaisuhan on kokeilla "wget" tai "fopen" (PHP) suoraan ja jos se ei onnistu, niin sitten lokaali!

Siis ratkasitu, mutta jos joku saa tuohon vastauksen, että millä sen netin tunnistaa koneelta muuten (miten esim. network-applet huomaa kun kaapeli on irti), niin saa laittaa perään.
Otsikko: Vs: Onko nettiyhteyttä? -ohjelmallisesti [Ratkaistu]
Kirjoitti: ajaaskel - 26.06.13 - klo:21.30
Yksi havainto mutta ei toimivuustakuuta:  Katsoo ARP -tietoja.  Jos näkyy numeroita /proc/ net/arp tiedostossa niin verkko ylhäällä.  Pikakoe bash: llä

Koodia: [Valitse]
grep -q [[:digit:]]  /proc/net/arp
echo $?
0  

Kun verkon tiputtaa niin antaa paluukoodin 1. En tosin kokeillut tuota kaapelin irroitusta kun olen wlan: in varassa tällä hetkellä vaan sammutin verkkoyhteyden Network Managerista kokeeksi. Ehkä joku keksii paremmankin paikan verkon statuksen tunnistamiseen ?