Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: BASH script is krachtig en handig.....  (gelezen 1608 keer)

BASH script is krachtig en handig.....
« Gepost op: 2010/07/09, 21:39:54 »
Moderator mededeling:

Dit topic is afgesplitst van: http://forum.ubuntu-nl.org/software-en-configuratie/inhoud-folder-afrdukken/
(Op vraag van de leden zelf)

Mvg,
hier4c



Wat MauRice2 probeert te zeggen: Je kunt altijd alle uitvoer van een programma doorsturen naar een ander programma of naar een tekst bestand :)
Dat is 1 van de handigste dingen van de linux commandline.

ProgrammaMetOutput > bestandsnaamzorgt er altijd voor dat de output van het programma in het bestand komt.
Dank u, Buzzin.

Misschien een beetje off topic maar BASH script is krachtig en handing.....

#WAN & LAN IP settings
myip ()
{
    INTERFACE=`cat /proc/net/arp | grep -m 1 -v Device |  awk '{print $6}'`

    /usr/bin/wget -np -c www.watismijnip.nl --output-document /tmp/index.html."$$" 2>/dev/null && export PRPID="$$"
    WAN_IP=`grep -i 'www.WatIsMijnIP.nl' /tmp/index.html."$PRPID" | cut -d'>' -f3 | tr -d '[:blank:]' | cut -d'<' -f1`
    LAN_IP=`/sbin/ifconfig $INTERFACE | grep 'inet addr:' | cut -d: -f2 | cut -d' ' -f1 | tr -d '[:blank:]'`
    export {WAN,LAN}_IP && echo -en "\nWAN IP: $WAN_IP\n" && echo -en "LAN IP: $LAN_IP\n\n" && /bin/rm -f /tmp/index.html."$PRPID"
}


if ping -c 1 -w 1 www.watismijnip.nl &>/dev/null; then
    myip;
else
    echo -en "\nThere is currently no\nConnection to the internet\nPlease check your settings! \n\n";
fi

De code hierboven staat in mijn .bashrc bestand.
Is niet voor 100% van mijn eigen hand. Maar is in de jaren aangepast en verbeterd.

Elke keer dat ik mijn terminal open.. Zie ik mijn WAN IP adres (dus voor mijn router) en mijn LAN IP adres (dus achter de router).
« Laatst bewerkt op: 2010/07/10, 00:01:26 door heir4c »
MvG,
MauRice
Registered Linux user: 473556

Offline Thijsg

  • Lid
BASH script is krachtig en handig.....
« Reactie #1 Gepost op: 2010/07/09, 22:43:58 »
Aangezien de vraag opgelost is, ga ik ook even offtopic.

Maurice, ik wil een scriptje maken dat enkel en alleen het WAN geeft. Ik heb nu het volgende:wget www.watismijnip.nl -q -O - |
grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>'

Dit geeft drie adressen en daaronder nog een andere. Hoe kan ik eenmaal het eerste soort adres weergeven?

Offline Johan van Dijk

  • Administrator
    • johanvandijk
Re: BASH script is krachtig en handig.....
« Reactie #2 Gepost op: 2010/07/10, 00:07:33 »
In plaats van de output van watismijnip.nl te filteren, kan je het ook in 1 keer krijgen via dit commando:
wget myip.dnsomatic.com -q -O -

Re: BASH script is krachtig en handig.....
« Reactie #3 Gepost op: 2010/07/10, 07:31:21 »
Hi,

Het verschil zit in het feit dat op "www.watismijnip.nl" , het WAN IP adress 3 maal voorkomt en op "myip.dnsomatic.com" maar een keer voor komt.

Nu heeft grep een optie om maar X aantal keren te zoeken... -m X
Citaat
m NUM, --max-count=NUM
              Stop reading a file after NUM matching lines.  If the input is standard input from a regular file, and NUM  matching  lines  are
              output,  grep  ensures  that the standard input is positioned to just after the last matching line before exiting, regardless of
              the presence of trailing context lines.  This enables a calling process to resume a search.  When grep stops after NUM  matching
              lines,  it outputs any trailing context lines.  When the -c or --count option is also used, grep does not output a count greater
              than NUM.  When the -v or --invert-match option is also used, grep stops after outputting NUM non-matching lines.

Dan wordt de regel van Thijsg:
wget www.watismijnip.nl -q -O - | grep -m 1 -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>'

MvG,
MauRice
Registered Linux user: 473556

Offline Thijsg

  • Lid
Re: BASH script is krachtig en handig.....
« Reactie #4 Gepost op: 2010/07/10, 12:35:13 »
Bedankt voor de tips. Op het moment zit ik even achter Windows, dus kan ik het niet testen.

Als ik het goed begrijp zijn er vier adressen van belang: het IP in het interne netwerk, het IP van de router, het forward-IP en het echte IP. De eerste drie heb ik al in Conky staan, de vierde lukt wel.

Edit: Johan, dat levert het verkeerde IP op. Op www.watismijnip.nl wordt dat het forwardadres genoemd, ik moet de bovenste hebben.

Maurice, in de terminal werkt het, in Conky niet. Ik zal nog een keer afmelden.
« Laatst bewerkt op: 2010/07/10, 21:24:11 door Thijsg »