Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dyn IP-Adresse auslessen



Euras
20-10-2001, 08:12
Will eine kleine Firewall aufsetzten um die Regeln ein bischen genauer zu definieren sollte ich die Dyn Adresse meiner ISDN-Karte auslesen können und sie in meinem Firewallscript integrieren können.
Da ich keinerlei erfahrung mit Scriptsprachen habe und ich ein RedHat Linux besitze würe ich euch bitten mir ein bißchen unter die Arme zu greifen.
Habe schon zwie Scripte aus euren beiträgen probiert die gehen beide leider nicht bei mir.

1 Script:
INTERFACE="ippp0"
IP=$(ifconfig $INTERFACE | grep inet | cut -d : -f 2 | cut -d \ -f l)

Bei der ausführung kommt die Fehlermeldung
cut: Trenner muß ein einzelnes Zeichen sein

Danke im Vorraus
ich bin seit 2 Wochen begeisterter Linux benutzer

geronet
20-10-2001, 09:43
Das geht so:


EXT_IP=`/sbin/ifconfig $EXT_IF | awk '/inet/ { print $2 } ' | sed -e s/addr://`

:D

Euras
20-10-2001, 09:54
Kann ich das einfach in mein Firewallscript so übernehmen oder muß ich noch Path Variablen ändern zb.
/addr

Euras
20-10-2001, 10:13
ICh habe leichte Klammer Probleme welche Klammern bedeuten welche Funktion

Bitte um Hilfe

geronet
20-10-2001, 10:24
dann so:


IP=$(/sbin/ifconfig $INTERFACE | awk '/inet/ { print $2 } ' | sed -e s/addr://`

/sbin/ifconfig = der Pfad zu "ifconfig", bekommst du mit "which ifconfig"

$INTERFACE= ist klar

awk '/inet/ { print $2 } ' = das zweite Argument ausgeben mit "awk" in der zeile in der "inet" steht.

sed -e s/addr://` = mit "sed" das "addr:" wegschneiden.

der senkrechte strich heisst "pipen"

wenn du probleme hast machst du alle kommandos nacheinander auf der console, z.B.

ifconfig ippp0

dann
ifconfig ippp0 | awk '/inet { print $2 }'

und dann
dann ifconfig ippp0 | awk '/inet { print $2 }' | sed -e s/addr://


dann sollte die ip-adresse auf der console zu sehen sein.

:rolleyes:

mightymike99
20-10-2001, 17:26
<BLOCKQUOTE><font size="1" face="Arial,Helvetica,Geneva">Zitat:</font><HR>
IP=$(ifconfig $INTERFACE | grep inet | cut -d : -f 2 | cut -d \ -f l)
[/quote]

schreib das mal lieber soIP=$(ifconfig $INTERFACE | grep inet | cut -d : -f2 | cut -d \\ -f l)

der Backslash ist ein Metazeichen!!!


Gruß
fork

mightymike99
27-10-2001, 01:46
...um die 100.000 DM Antwort zu geben:

IP=$(ifconfig eth0 | grep "inet addr:" | awk '{print $2}' | awk -F: '{print $2}')

Gruß
fork