Discussion:
Netz identifizieren
(zu alt für eine Antwort)
Alexander Goetzenstein
2021-02-16 05:55:13 UTC
Permalink
Hallo,
in einem Script möchte ich feststellen, ob ich mich in einem bestimmten
Netz befinde. Nun könnte ich einfach die Ausgabe von
ip address | grep 192.168.123.mit cut zerlegen, aber das erscheint mir etwas "unelegant" zu sein,
zumal sich das genaue Ausgabeformat mit dem nächsten Update oder
Spracheinstellung ändern könnte. Wie macht man es besser?
--
Gruß
Alex
Ulli Horlacher
2021-02-16 07:06:26 UTC
Permalink
Post by Alexander Goetzenstein
in einem Script möchte ich feststellen, ob ich mich in einem bestimmten
Netz befinde.
LAN oder WAN?
Was meinst du genau mit "Netz"?
Post by Alexander Goetzenstein
Nun könnte ich einfach die Ausgabe von ip address | grep 192.168.123
Das ist eine private ip Adresse, die dir vom DHCP router zugewiesen wurde.
Ein anderer Router kann dir eine ganz anderen Netzbereich zuweisen, der
nicht mit 192.168 beginnt.
Post by Alexander Goetzenstein
Wie macht man es besser?
Erst mal muesste man wissen, was GENAU du haben willst :-)
--
Ullrich Horlacher Server und Virtualisierung
Rechenzentrum TIK
Universitaet Stuttgart E-Mail: ***@tik.uni-stuttgart.de
Allmandring 30a Tel: ++49-711-68565868
70569 Stuttgart (Germany) WWW: http://www.tik.uni-stuttgart.de/
Alexander Goetzenstein
2021-02-16 08:51:10 UTC
Permalink
Hallo,
Post by Ulli Horlacher
Post by Alexander Goetzenstein
in einem Script möchte ich feststellen, ob ich mich in einem bestimmten
Netz befinde.
LAN oder WAN?
Was meinst du genau mit "Netz"?
das ist egal, Netz eben. IP-basiert.
Post by Ulli Horlacher
Post by Alexander Goetzenstein
Nun könnte ich einfach die Ausgabe von ip address | grep 192.168.123
Das ist eine private ip Adresse, die dir vom DHCP router zugewiesen wurde.
Genauer: ein Netz. Und ich möchte feststellen, ob der Rechner in diesem
oder einem anderen Netz hängt.
Post by Ulli Horlacher
Ein anderer Router kann dir eine ganz anderen Netzbereich zuweisen, der
nicht mit 192.168 beginnt.
Dann ergibt die Prüfung eben, dass der Rechner nicht in diesem Netz hängt.
Post by Ulli Horlacher
Post by Alexander Goetzenstein
Wie macht man es besser?
Erst mal muesste man wissen, was GENAU du haben willst :-)
Ich wüsste nicht, wie ich es besser beschreiben sollte.
--
Gruß
Alex
Ulli Horlacher
2021-02-16 09:19:30 UTC
Permalink
Post by Alexander Goetzenstein
Hallo,
Post by Ulli Horlacher
Post by Alexander Goetzenstein
in einem Script möchte ich feststellen, ob ich mich in einem bestimmten
Netz befinde.
LAN oder WAN?
Was meinst du genau mit "Netz"?
das ist egal, Netz eben. IP-basiert.
Du hast meine erste Frage nicht beantwortet. Das ist aber WESENTLICH.


Ansonsten:

route -n | perl -ne 'exec "whois $1" if /^0\.0\.0\.0 +(\S+)/'
--
Ullrich Horlacher Server und Virtualisierung
Rechenzentrum TIK
Universitaet Stuttgart E-Mail: ***@tik.uni-stuttgart.de
Allmandring 30a Tel: ++49-711-68565868
70569 Stuttgart (Germany) WWW: http://www.tik.uni-stuttgart.de/
Alexander Goetzenstein
2021-02-16 10:30:37 UTC
Permalink
Hallo,
Post by Ulli Horlacher
Du hast meine erste Frage nicht beantwortet. Das ist aber WESENTLICH.
sie ist nicht zu beantworten, da der Rechner mal per LAN und mal per
WLAN angebunden ist. Es soll in beiden Fällen funktionieren.
--
Gruß
Alex
Stefan Wiens
2021-02-16 11:07:29 UTC
Permalink
Post by Alexander Goetzenstein
Post by Ulli Horlacher
Du hast meine erste Frage nicht beantwortet. Das ist aber WESENTLICH.
sie ist nicht zu beantworten, da der Rechner mal per LAN und mal per
WLAN angebunden ist. Es soll in beiden Fällen funktionieren.
Falls es dir darum geht, festzustellen, ob der Rechner nicht mit
irgendeinem, sondern mit einem bestimmten verbunden ist:

Was zeichnet dein spezielles Netz gegenüber anderen aus?
--
Stefan
Alexander Goetzenstein
2021-02-16 14:37:11 UTC
Permalink
Hallo,
Post by Stefan Wiens
Was zeichnet dein spezielles Netz gegenüber anderen aus?
die Verfügbarkeit bestimmter Ressourcen. Mir dauert es zu lange, auf die
diversen Timeouts zu warten. Deshalb will ich das vorselektieren.
--
Gruß
Alex
Stefan Wiens
2021-02-16 15:01:21 UTC
Permalink
Post by Alexander Goetzenstein
Post by Stefan Wiens
Was zeichnet dein spezielles Netz gegenüber anderen aus?
die Verfügbarkeit bestimmter Ressourcen. Mir dauert es zu lange, auf die
diversen Timeouts zu warten. Deshalb will ich das vorselektieren.
Etwas konkreter könntest du schon werden.

Ich könnte z. B. testen, ob ich mich bei bei meiner Fritz!Box
unter 192.168.168.1 einloggen kann.

Ein fremder WLAN-Router könnte mir ohne Weiteres eine Adresse aus meinem
privaten Heimnetz zuweisen.
--
Stefan
Kay Martinen
2021-02-16 15:28:36 UTC
Permalink
Post by Stefan Wiens
Post by Alexander Goetzenstein
Post by Stefan Wiens
Was zeichnet dein spezielles Netz gegenüber anderen aus?
die Verfügbarkeit bestimmter Ressourcen. Mir dauert es zu lange, auf die
diversen Timeouts zu warten. Deshalb will ich das vorselektieren.
Ping auf ein gw das nicht da ist schlägt doch sofort fehl. Welcher
Timeout sonst noch?
Post by Stefan Wiens
Etwas konkreter könntest du schon werden.
Ich könnte z. B. testen, ob ich mich bei bei meiner Fritz!Box
unter 192.168.168.1 einloggen kann.
Wunderbar. Und dann bist du in einem Fremden LAN mit Fritzbox unter der
gleichen IP und die speichert dann dein Kennwort - als Fehlversuch.
Neues Kennwort fällig wenn man Datenschutz haben möchte.

Oder es ist eine FW-Appliance oder gar ein Server unter der IP und auch
der speichert "aus sicherheitsgründen" alle Daten zu fehlgeschlagenen
Loginversuchen.
Post by Stefan Wiens
Ein fremder WLAN-Router könnte mir ohne Weiteres eine Adresse aus meinem
privaten Heimnetz zuweisen.
Der hat dann aber immer noch eine andere MAC. Auch wenn man die spoofen
*kann*... ist das nicht der normalfall.

Ich denke darum gehts hier. Bin ich im Heimischen LAN und kann einfach
los legen oder bin ich wo anders und sollte mich besser zurück halten
mit dem Rausgeben irgend einer Info.

Kay
--
Posted via leafnode
Stefan Wiens
2021-02-16 15:55:49 UTC
Permalink
Post by Kay Martinen
Post by Stefan Wiens
Post by Alexander Goetzenstein
Post by Stefan Wiens
Was zeichnet dein spezielles Netz gegenüber anderen aus?
die Verfügbarkeit bestimmter Ressourcen. Mir dauert es zu lange, auf die
diversen Timeouts zu warten. Deshalb will ich das vorselektieren.
Ping auf ein gw das nicht da ist schlägt doch sofort fehl. Welcher
Timeout sonst noch?
Post by Stefan Wiens
Etwas konkreter könntest du schon werden.
Ich könnte z. B. testen, ob ich mich bei bei meiner Fritz!Box
unter 192.168.168.1 einloggen kann.
Wunderbar. Und dann bist du in einem Fremden LAN mit Fritzbox unter der
gleichen IP und die speichert dann dein Kennwort - als Fehlversuch.
Neues Kennwort fällig wenn man Datenschutz haben möchte.
Per https. Das Zertifikat wurde vorher offline ausgetauscht.
Post by Kay Martinen
Oder es ist eine FW-Appliance oder gar ein Server unter der IP und auch
der speichert "aus sicherheitsgründen" alle Daten zu fehlgeschlagenen
Loginversuchen.
Post by Stefan Wiens
Ein fremder WLAN-Router könnte mir ohne Weiteres eine Adresse aus meinem
privaten Heimnetz zuweisen.
Der hat dann aber immer noch eine andere MAC. Auch wenn man die spoofen
*kann*... ist das nicht der normalfall.
MAC als Schlüssel ist doch etwas schlicht.
Post by Kay Martinen
Ich denke darum gehts hier. Bin ich im Heimischen LAN und kann einfach
los legen oder bin ich wo anders und sollte mich besser zurück halten
mit dem Rausgeben irgend einer Info.
--
Stefan
Kay Martinen
2021-02-16 15:22:14 UTC
Permalink
Post by Stefan Wiens
Post by Alexander Goetzenstein
Post by Ulli Horlacher
Du hast meine erste Frage nicht beantwortet. Das ist aber WESENTLICH.
Für wen oder was denn?
Post by Stefan Wiens
Post by Alexander Goetzenstein
sie ist nicht zu beantworten, da der Rechner mal per LAN und mal per
WLAN angebunden ist. Es soll in beiden Fällen funktionieren.
Falls es dir darum geht, festzustellen, ob der Rechner nicht mit
So habe ich das verstanden. Du nicht oder anders?
Post by Stefan Wiens
Was zeichnet dein spezielles Netz gegenüber anderen aus?
Vielleicht die nicht-verfügbarkeit der Automagischen
Netzwerk-Erkennung/Klassifizierung/kaputtoptimierung wie bei Windows -
weil es ein Linux PC ist?

Sachen wie Arbeitsplatz, Privat oder Öffentlich als Generische
Netzwerkbeschreibungen deren Regeln einem "erkannten" realen Netzwerk
zugeordnet würden habe ich auf meinem Linux Desktop noch nicht gesehen.

Aber ich finde die Idee durchaus reizvoll wenn man mal kurz drüber
nachdenkt - auch wenn sie von Windows käme.

Gegeben die MAC sei eindeutig, die IP des Gateways vieldeutig und der
Netzbereich beliebig kann man sein Heim-Netzwerk nur an der Kombination
von Netzbereich, IP des Gateways und dessen MAC fest machen.

Ich hab hier auch so ein LAN wo ich verschiedene Bereiche habe. In dem
einen geht es "privat" zu, das andere ist eher dazwischen. In letzterem
soll auch nicht mit vielleicht gespeicherten Kennwörtern wild nach
Freigaben gesucht werden, im anderen aber schon.

Wenn als Konsequenz einer Gateway-feststellung also z.B. server-dienste
gestoppt und der Paketfilter dichter gemacht wird ist das eine
Wünschenswerte Erleichterung.

Ich weiß nicht ob firewalld im Verein mit Network-Manager das auf einem
Linux-Desktop leisten könnte. Was ich weiß ist das dessen Firewall-Zonen
nur dann funktion haben wenn man firewalld installiert. Mit gufw klappt
es nicht. Und firewalld bietet zwar ein Grafisches Frontend aber das ist
um längen komplizierter als gufw. BTDT.

Damit ist aber m.E. noch keine automatische Netzwerk-Erkennung
verbunden. Ganz zu schweigen von anderen aktionen.

Frage nebenbei. Kann systemd so was etwa/nicht? Der drängelt sich doch
sonst auch um jeden job der irgendwie mit ***d endet. ;-)

Kay
--
Posted via leafnode
Ulli Horlacher
2021-02-16 19:46:59 UTC
Permalink
Post by Alexander Goetzenstein
Hallo,
Post by Ulli Horlacher
Du hast meine erste Frage nicht beantwortet. Das ist aber WESENTLICH.
sie ist nicht zu beantworten, da der Rechner mal per LAN und mal per
WLAN angebunden ist. Es soll in beiden Fällen funktionieren.
Willst du dann im ersten Fall nur die LAN Adresse?
--
Ullrich Horlacher Server und Virtualisierung
Rechenzentrum TIK
Universitaet Stuttgart E-Mail: ***@tik.uni-stuttgart.de
Allmandring 30a Tel: ++49-711-68565868
70569 Stuttgart (Germany) WWW: http://www.tik.uni-stuttgart.de/
Dr Eberhard Lisse
2021-02-26 10:46:49 UTC
Permalink
Ich finde

curl -s http://ipv4.icanhazip.com

für soetwas sehr hilfreich

mfg, el
Post by Alexander Goetzenstein
Hallo,
Post by Ulli Horlacher
Du hast meine erste Frage nicht beantwortet. Das ist aber WESENTLICH.
sie ist nicht zu beantworten, da der Rechner mal per LAN und mal per
WLAN angebunden ist. Es soll in beiden Fällen funktionieren.
--
To email me replace 'nospam' with 'el'
Marc Haber
2021-02-16 07:31:06 UTC
Permalink
Post by Alexander Goetzenstein
in einem Script möchte ich feststellen, ob ich mich in einem bestimmten
Netz befinde. Nun könnte ich einfach die Ausgabe von
ip address | grep 192.168.123.mit cut zerlegen, aber das erscheint mir etwas "unelegant" zu sein,
zumal sich das genaue Ausgabeformat mit dem nächsten Update oder
Spracheinstellung ändern könnte. Wie macht man es besser?
ip --oneline address ist besse parsebar, ich würde das eher mit sed
oder awk machen

|ip --oneline address | sed -n '/inet[[:space:]]\+/{s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/;p;}'

oder Du pingst 8.8.8.8, parst Dir die MAC-Adresse des Defaultgateways
aus dem Neighbor Cache, damit erschlägst Du auch andere Netze, die
denselben IP-Address-Range verwenden.

Ode Du machst irgendwas mit dem DNS.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834
Alexander Goetzenstein
2021-02-16 08:58:47 UTC
Permalink
Hallo,
Post by Marc Haber
ip --oneline address ist besse parsebar, ich würde das eher mit sed
oder awk machen
|ip --oneline address | sed -n '/inet[[:space:]]\+/{s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/;p;}'
funktioniert irgendwie nicht richtig; da ich mit sed auf Kriegsfuß
stehe, kriege ich es nicht repariert.
Post by Marc Haber
oder Du pingst 8.8.8.8, parst Dir die MAC-Adresse des Defaultgateways
aus dem Neighbor Cache, damit erschlägst Du auch andere Netze, die
denselben IP-Address-Range verwenden.
Das wäre freilich noch besser, aber ping liefert mir keine MAC-Adresse.
Oder habe ich etwas übersehen?
--
Gruß
Alex
Marc Haber
2021-02-16 09:05:12 UTC
Permalink
Post by Alexander Goetzenstein
Post by Marc Haber
ip --oneline address ist besse parsebar, ich würde das eher mit sed
oder awk machen
|ip --oneline address | sed -n '/inet[[:space:]]\+/{s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/;p;}'
funktioniert irgendwie nicht richtig; da ich mit sed auf Kriegsfuß
stehe, kriege ich es nicht repariert.
Was macht es denn?
Post by Alexander Goetzenstein
Post by Marc Haber
oder Du pingst 8.8.8.8, parst Dir die MAC-Adresse des Defaultgateways
aus dem Neighbor Cache, damit erschlägst Du auch andere Netze, die
denselben IP-Address-Range verwenden.
Das wäre freilich noch besser, aber ping liefert mir keine MAC-Adresse.
Oder habe ich etwas übersehen?
|[1/7132]***@drop:~ $ ip -4 route show default
|default via 192.168.182.254 dev wlp4s0 proto dhcp metric 600
|[2/7133]***@drop:~ $ ping -c 1 192.168.182.254
|PING 192.168.182.254 (192.168.182.254) 56(84) bytes of data.
|64 bytes from 192.168.182.254: icmp_seq=1 ttl=64 time=1.12 ms
|
|--- 192.168.182.254 ping statistics ---
|1 packets transmitted, 1 received, 0% packet loss, time 0ms
|rtt min/avg/max/mdev = 1.119/1.119/1.119/0.000 ms
|[3/7134]***@drop:~ $ ip -4 neighbor show | grep 192\.168\.182\.254
|192.168.182.254 dev wlp4s0 lladdr 00:0d:b9:41:c9:ec REACHABLE
|[4/7135]***@drop:~ $

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834
Kay Martinen
2021-02-16 09:28:35 UTC
Permalink
Post by Alexander Goetzenstein
Post by Marc Haber
oder Du pingst 8.8.8.8, parst Dir die MAC-Adresse des Defaultgateways
aus dem Neighbor Cache, damit erschlägst Du auch andere Netze, die
denselben IP-Address-Range verwenden.
@Marc: Unter der Annahme das Gateway sei immer eine .1 im Jeweiligen
Netz? Ohne das als Kennzeichen ist der Erkenntnisgewinn nur eine
IP-MAC-IF zuordnung mit der Info Erreichbar Ja/nein. Eine Default-GW
Marke sehe ich da hier nicht. ($Hier: Ubuntu 18)
Post by Alexander Goetzenstein
Das wäre freilich noch besser, aber ping liefert mir keine MAC-Adresse.
Oder habe ich etwas übersehen?
Nur im Fehlerfall und dann auch nicht die. Das hat Marc vermutlich auch
nicht gemeint.

'ip neigh' zeigt dir host-IPs, inklusive MAC und interface. Und 'ip
route' zeigt dir welche davon das Default-GW ist. Ob man das verbinden
kann weiß ich nicht. S.o. Denn jetzt müßte man aus der einen ausgabe das
Default-GW ziehen und damit aus der zweiten alles bis auf die MAC
rausfiltern. Dann hast du IP und MAC des aktuellen GW und kannst das als
Kennzeichen speichern für das jeweilige Netz. Und dann auch vergleichen
ob du akt. im "richtigen" bist.


Kay
--
Posted via leafnode
Marc Haber
2021-02-16 12:56:59 UTC
Permalink
Post by Kay Martinen
Post by Marc Haber
oder Du pingst 8.8.8.8, parst Dir die MAC-Adresse des Defaultgateways
aus dem Neighbor Cache, damit erschlägst Du auch andere Netze, die
denselben IP-Address-Range verwenden.
@Marc: Unter der Annahme das Gateway sei immer eine .1 im Jeweiligen
Netz?
Nein, das muss man sich aus der Routingtabelle herauskratzen.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834
Andreas Kohlbach
2021-02-16 20:39:55 UTC
Permalink
Post by Alexander Goetzenstein
Post by Marc Haber
ip --oneline address ist besse parsebar, ich würde das eher mit sed
oder awk machen
|ip --oneline address | sed -n '/inet[[:space:]]\+/{s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/;p;}'
funktioniert irgendwie nicht richtig; da ich mit sed auf Kriegsfuß
stehe, kriege ich es nicht repariert.
Die "|" vorne weglassen.

~$ ip --oneline address | sed -n '/inet[[:space:]]\+/{s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/;p;}'
127.0.0.1/8
192.168.0.2/24
--
Andreas

PGP fingerprint 952B0A9F12C2FD6C9F7E68DAA9C2EA89D1A370E0
Alexander Goetzenstein
2021-02-17 17:48:34 UTC
Permalink
Hallo,
Post by Andreas Kohlbach
Post by Alexander Goetzenstein
Post by Marc Haber
ip --oneline address ist besse parsebar, ich würde das eher mit sed
oder awk machen
|ip --oneline address | sed -n '/inet[[:space:]]\+/{s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/;p;}'
funktioniert irgendwie nicht richtig; da ich mit sed auf Kriegsfuß
stehe, kriege ich es nicht repariert.
Die "|" vorne weglassen.
~$ ip --oneline address | sed -n '/inet[[:space:]]\+/{s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/;p;}'
127.0.0.1/8
192.168.0.2/24
net[[:space:]]+/{s.*inet[[:space:]]+([^[:space:]]+).*/1/;p;}
net[[:space:]]+/{s.*inet[[:space:]]+([^[:space:]]+).*/1/;p;}
net[[:space:]]+/{s.*inet[[:space:]]+([^[:space:]]+).*/1/;p;}
→ ??
--
Gruß
Alex
Marc Haber
2021-02-17 18:20:50 UTC
Permalink
~$ ip --oneline address | sed -n '/inet[[:space:]]\+/{s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/;p;}'
127.0.0.1/8
192.168.0.2/24
net[[:space:]]+/{s.*inet[[:space:]]+([^[:space:]]+).*/1/;p;}
net[[:space:]]+/{s.*inet[[:space:]]+([^[:space:]]+).*/1/;p;}
net[[:space:]]+/{s.*inet[[:space:]]+([^[:space:]]+).*/1/;p;}
Bei den X fehlen zwei Schrägstriche. Sorry fürs Quotemardern.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834
Alexander Goetzenstein
2021-02-17 18:27:56 UTC
Permalink
Post by Marc Haber
~$ ip --oneline address | sed -n '/inet[[:space:]]\+/{s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/;p;}'
127.0.0.1/8
192.168.0.2/24
net[[:space:]]+/{s.*inet[[:space:]]+([^[:space:]]+).*/1/;p;}
net[[:space:]]+/{s.*inet[[:space:]]+([^[:space:]]+).*/1/;p;}
net[[:space:]]+/{s.*inet[[:space:]]+([^[:space:]]+).*/1/;p;}
Bei den X fehlen zwei Schrägstriche. Sorry fürs Quotemardern.
sed: -e Ausdruck #1, Zeichen 0: Kein vorheriger regulärer Ausdruck
Wie gesagt, mit sed stehe ich auf Kriegsfuß...
--
Gruß
Alex
Urs Janßen
2021-02-17 18:39:27 UTC
Permalink
Post by Alexander Goetzenstein
Wie gesagt, mit sed stehe ich auf Kriegsfuß...
dann nimmt halt awk (oder hostname -I)

niko% ip --oneline address | awk '$3~/inet$/{print $4}'
127.0.0.1/8
192.168.1.6/24

niko% ip --oneline address | awk '$4~/192\.168\.1\./{print $4}'
192.168.1.6/24

niko% ip --oneline address | awk '$4~/192\.168\.1\./{sub(/\/.*/,"",$4);print $4}'
192.168.1.6
Rupert Haselbeck
2021-02-17 18:40:04 UTC
Permalink
Post by Alexander Goetzenstein
Post by Marc Haber
~$ ip --oneline address | sed -n '/inet[[:space:]]\+/{s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/;p;}'
________^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Copy and pasten auf deine Kommandozeile...
Post by Alexander Goetzenstein
Post by Marc Haber
127.0.0.1/8
192.168.0.2/24
net[[:space:]]+/{s.*inet[[:space:]]+([^[:space:]]+).*/1/;p;}
net[[:space:]]+/{s.*inet[[:space:]]+([^[:space:]]+).*/1/;p;}
net[[:space:]]+/{s.*inet[[:space:]]+([^[:space:]]+).*/1/;p;}
Bei den X fehlen zwei Schrägstriche. Sorry fürs Quotemardern.
sed: -e Ausdruck #1, Zeichen 0: Kein vorheriger regulärer Ausdruck
Wie gesagt, mit sed stehe ich auf Kriegsfuß...
Wirf doch einfach einen Blick auf das, was Andreas geschrieben hat,
besser noch, kopiere es und es funktioniert.

MfG
Rupert
Alexander Goetzenstein
2021-02-18 22:43:33 UTC
Permalink
Hallo,
Post by Rupert Haselbeck
Wirf doch einfach einen Blick auf das, was Andreas geschrieben hat,
besser noch, kopiere es und es funktioniert.
genau das habe ich getan, und das Ergebnis habe ich gepostet. Alles
Copy&Paste.
--
Gruß
Alex
Andreas Kohlbach
2021-02-19 16:47:58 UTC
Permalink
Post by Alexander Goetzenstein
Post by Rupert Haselbeck
Wirf doch einfach einen Blick auf das, was Andreas geschrieben hat,
besser noch, kopiere es und es funktioniert.
genau das habe ich getan, und das Ergebnis habe ich gepostet. Alles
Copy&Paste.
Nein, Du hattest

ip --oneline address | sed -n
'Xinet[[:space:]]\+/{sX.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/;p;}'

Die Zeilen wurden nacheinander ausgeführt. Die erste hat vermutlich die
Hilfe gelistet. Die Zweite dann (ebenfalls allein für sich ausgeführt)

-bash: Xinet[[:space:]]\+/{sX.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/;p;}: No such file or directory

angezeigt.

Kannst Du

ip --oneline address | sed -n '/inet[[:space:]]\+/{s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/;p;}'

nicht komplett als *eine* Zeile markieren und kopieren, um sie dann aus
der Zwischenablage in einer Shell (Xterm oder so) einzufügen? Dann
ENTER. Gibt hier (wie erwähnt):

127.0.0.1/8
192.168.0.7/24
--
Andreas
Marc Haber
2021-02-17 19:30:51 UTC
Permalink
Post by Alexander Goetzenstein
Post by Marc Haber
~$ ip --oneline address | sed -n '/inet[[:space:]]\+/{s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/;p;}'
127.0.0.1/8
192.168.0.2/24
net[[:space:]]+/{s.*inet[[:space:]]+([^[:space:]]+).*/1/;p;}
net[[:space:]]+/{s.*inet[[:space:]]+([^[:space:]]+).*/1/;p;}
net[[:space:]]+/{s.*inet[[:space:]]+([^[:space:]]+).*/1/;p;}
Bei den X fehlen zwei Schrägstriche. Sorry fürs Quotemardern.
sed: -e Ausdruck #1, Zeichen 0: Kein vorheriger regulärer Ausdruck
Wie gesagt, mit sed stehe ich auf Kriegsfuß...
Jetzt sind die Schrägstriche doppelt. Jedes X wird durch _einen_
Schrägstrich ersetzt, und man sollte wenigstens versuchen zu verstehen
was man da kopiert.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834
Andreas Kohlbach
2021-02-17 22:36:51 UTC
Permalink
Post by Alexander Goetzenstein
Post by Marc Haber
Post by Andreas Kohlbach
~$ ip --oneline address | sed -n
'/inet[[:space:]]\+/{s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/;p;}'
127.0.0.1/8
192.168.0.2/24
'Xinet[[:space:]]\+/{sX.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/;p;}'
net[[:space:]]+/{s.*inet[[:space:]]+([^[:space:]]+).*/1/;p;}
net[[:space:]]+/{s.*inet[[:space:]]+([^[:space:]]+).*/1/;p;}
net[[:space:]]+/{s.*inet[[:space:]]+([^[:space:]]+).*/1/;p;}
Bei den X fehlen zwei Schrägstriche. Sorry fürs Quotemardern.
'//inet[[:space:]]\+/{s//.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/;p;}'
sed: -e Ausdruck #1, Zeichen 0: Kein vorheriger regulärer Ausdruck
Wie gesagt, mit sed stehe ich auf Kriegsfuß...
Versuche das in eine Zeile zu packen, wie ich schrieb. Sollte es bei Dir
umbrechen, vor dem Ausführen die zweite Zeile mit der ersten verbinden.

ip --oneline address | sed -n '/inet[[:space:]]\+/{s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/;p;}'

Mein Gnus sagt hier auch:

| You have lines longer than 79 characters. Really post? (y or n)

Yes, really!
--
Andreas
Helmut Waitzmann
2021-02-18 07:36:03 UTC
Permalink
Post by Andreas Kohlbach
Versuche das in eine Zeile zu packen, wie ich schrieb. Sollte es
bei Dir umbrechen, vor dem Ausführen die zweite Zeile mit der
ersten verbinden.
ip --oneline address | sed -n '/inet[[:space:]]\+/{s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/;p;}'
| You have lines longer than 79 characters. Really post? (y or n)
Yes, really!
Man könnte es ja statt dessen seinen Lesern leicht machen und das
Kommando so hinschreiben, dass es mit kürzeren Zeilen auskommt. 

An gewissen Stellen in den «sed»‐Ersetzungsparametern dürfen
Zeilenwechsel eingefügt oder anstelle von «;» gesetzt werden.  Das
kann man ausnutzen (und es dabei gleich noch übersichtlicher
gestalten):

ip --oneline address |
sed -n -e '
/inet[[:space:]]\+/{
s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/
p
}'

kommt trotz Einrückung mit 52 Zeichen kurzen Zeilen aus und kann
mittels copy and paste direkt an den Shell verfüttert werden. 
Stefan Wiens
2021-02-18 08:35:43 UTC
Permalink
Post by Marc Haber
ip --oneline address |
sed -n -e '
/inet[[:space:]]\+/{
s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/
p
}'
Mit GNU sed --posix wird nichts ausgegeben. Sollte man nicht
strenggenommen »\{1,\}« statt »\+« schreiben (Basic regular expression)?
Mit Busybox funktioniert es aber offenbar auch.
--
Stefan
Stefan Wiens
2021-02-18 11:29:53 UTC
Permalink
Post by Stefan Wiens
Post by Marc Haber
ip --oneline address |
sed -n -e '
/inet[[:space:]]\+/{
s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/
p
}'
Mit GNU sed --posix wird nichts ausgegeben. Sollte man nicht
strenggenommen »\{1,\}« statt »\+« schreiben (Basic regular expression)?
Mit Busybox funktioniert es aber offenbar auch.
,----[ info sed ]
| 5.3 Overview of basic regular expression syntax
| [...]
| '\+'
| As '*', but matches one or more. It is a GNU extension.
`----
--
Stefan
Helmut Waitzmann
2021-02-18 11:30:19 UTC
Permalink
Post by Stefan Wiens
Post by Marc Haber
ip --oneline address |
sed -n -e '
/inet[[:space:]]\+/{
s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/
p
}'
Mit GNU sed --posix wird nichts ausgegeben.
Das ist der Fall, weil «\+» in POSIX basic regular expressions nicht
die Bedeutung «\{1,\}» hat, und Du hast ganz recht: 
Post by Stefan Wiens
Sollte man nicht strenggenommen »\{1,\}« statt »\+« schreiben
(Basic regular expression)?
Aber laut <https://www.austingroupbugs.net/view.php?id=528> kennt
POSIX‐«sed» jetzt auch POSIX extended regular expressions. 

In der «sed»‐Dokumentation in Debian 10 Linux (mit GNU sed version
4.7) heißt es: 

'-E'
'-r'
'--regexp-extended'
Use extended regular expressions rather than basic
regular expressions. Extended regexps are those that
'egrep' accepts; they can be clearer because they
usually have fewer backslashes. Historically this
was a GNU extension, but the '-E' extension has
since been added to the POSIX standard
(http://austingroupbugs.net/view.php?id=528), so use
'-E' for portability. GNU sed has accepted '-E' as
an undocumented option for years, and *BSD seds have
accepted '-E' for years as well, but scripts that
use '-E' might not port to other older systems.


In Debian 6 (mit GNU sed version 4.2.1) hieß es noch: 


`-r'
`--regexp-extended'
Use extended regular expressions rather than basic
regular expressions. Extended regexps are those that
`egrep' accepts; they can be clearer because they
usually have less backslashes, but are a GNU
extension and hence scripts that use them are not
portable.

Aber selbst dort funktionierte «-E» schon.
Stefan Wiens
2021-02-18 12:03:02 UTC
Permalink
Post by Helmut Waitzmann
Post by Stefan Wiens
Post by Marc Haber
ip --oneline address |
sed -n -e '
/inet[[:space:]]\+/{
s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/
p
}'
Mit GNU sed --posix wird nichts ausgegeben.
Das ist der Fall, weil «\+» in POSIX basic regular expressions nicht
die Bedeutung «\{1,\}» hat, und Du hast ganz recht: 
Post by Stefan Wiens
Sollte man nicht strenggenommen »\{1,\}« statt »\+« schreiben
(Basic regular expression)?
Aber laut <https://www.austingroupbugs.net/view.php?id=528> kennt
POSIX‐«sed» jetzt auch POSIX extended regular expressions. 
In der «sed»‐Dokumentation in Debian 10 Linux (mit GNU sed version
4.7) heißt es: 
'-E'
'-r'
'--regexp-extended'
Use extended regular expressions rather than basic
regular expressions. Extended regexps are those that
'egrep' accepts; they can be clearer because they
usually have fewer backslashes. Historically this
was a GNU extension, but the '-E' extension has
since been added to the POSIX standard
(http://austingroupbugs.net/view.php?id=528), so use
'-E' for portability. GNU sed has accepted '-E' as
an undocumented option for years, and *BSD seds have
accepted '-E' for years as well, but scripts that
use '-E' might not port to other older systems.
Aber man muss ERE per Option anfordern. Die Syntax ist schon anders.
»+« würde ohne Backslash funktionieren.
--
Stefan
Marc Haber
2021-02-18 09:27:59 UTC
Permalink
An gewissen Stellen in den «sed»?Ersetzungsparametern dürfen
Zeilenwechsel eingefügt oder anstelle von «;» gesetzt werden.  Das
kann man ausnutzen (und es dabei gleich noch übersichtlicher
ip --oneline address |
sed -n -e '
/inet[[:space:]]\+/{
s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/
p
}'
kommt trotz Einrückung mit 52 Zeichen kurzen Zeilen aus und kann
mittels copy and paste direkt an den Shell verfüttert werden. 
Das wäre schwieriger zu entwickeln gewesen. Sorry, aber wenn ich schon
helfe, muss es für MICH einfach sein, oder ich lass es.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834
Stefan Wiens
2021-02-18 10:36:09 UTC
Permalink
Post by Marc Haber
An gewissen Stellen in den «sed»?Ersetzungsparametern dürfen
Zeilenwechsel eingefügt oder anstelle von «;» gesetzt werden.  Das
kann man ausnutzen (und es dabei gleich noch übersichtlicher
ip --oneline address |
sed -n -e '
/inet[[:space:]]\+/{
s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/
p
}'
kommt trotz Einrückung mit 52 Zeichen kurzen Zeilen aus und kann
mittels copy and paste direkt an den Shell verfüttert werden. 
Das wäre schwieriger zu entwickeln gewesen. Sorry, aber wenn ich schon
helfe, muss es für MICH einfach sein, oder ich lass es.
An Verbesserungsvorschlägen ist doch prinzipiell nichts auszusetzen, und
das betrifft auch die Lesbarkeit. (Im Thread wurde auch ein nicht so
leicht lesbares Konstrukt präsentiert ...)
--
Stefan
Stefan Wiens
2021-02-18 10:37:30 UTC
Permalink
Post by Marc Haber
An gewissen Stellen in den «sed»?Ersetzungsparametern dürfen
Zeilenwechsel eingefügt oder anstelle von «;» gesetzt werden.  Das
kann man ausnutzen (und es dabei gleich noch übersichtlicher
ip --oneline address |
sed -n -e '
/inet[[:space:]]\+/{
s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/
p
}'
kommt trotz Einrückung mit 52 Zeichen kurzen Zeilen aus und kann
mittels copy and paste direkt an den Shell verfüttert werden. 
Das wäre schwieriger zu entwickeln gewesen. Sorry, aber wenn ich schon
helfe, muss es für MICH einfach sein, oder ich lass es.
An Verbesserungsvorschlägen ist doch prinzipiell nichts auszusetzen, und
das betrifft auch die Lesbarkeit. (In einem anderem Thread wurde auch
ein nicht so leicht lesbares Konstrukt präsentiert ...)
--
Stefan
Andreas Kohlbach
2021-02-18 18:09:26 UTC
Permalink
Post by Helmut Waitzmann
Post by Andreas Kohlbach
Versuche das in eine Zeile zu packen, wie ich schrieb. Sollte es bei
Dir umbrechen, vor dem Ausführen die zweite Zeile mit der ersten
verbinden.
ip --oneline address | sed -n '/inet[[:space:]]\+/{s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/;p;}'
| You have lines longer than 79 characters. Really post? (y or n)
Yes, really!
Man könnte es ja statt dessen seinen Lesern leicht machen und das
Kommando so hinschreiben, dass es mit kürzeren Zeilen auskommt. 
An gewissen Stellen in den «sed»‐Ersetzungsparametern dürfen
Zeilenwechsel eingefügt oder anstelle von «;» gesetzt werden.  Das
kann man ausnutzen (und es dabei gleich noch übersichtlicher
ip --oneline address |
sed -n -e '
/inet[[:space:]]\+/{
s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/
p
}'
kommt trotz Einrückung mit 52 Zeichen kurzen Zeilen aus und kann
mittels copy and paste direkt an den Shell verfüttert werden. 
Der Aufwand nur des Postens halber?

Manchmal "dürfen" es mehr als 80 Zeichen sein. Gibt mitunter URLs, die
diese Länge überschreiten. Das Umbrechen macht sie "nicht-klickbar".
--
Andreas
Helmut Waitzmann
2021-02-18 21:07:19 UTC
Permalink
Post by Andreas Kohlbach
Post by Helmut Waitzmann
Man könnte es ja statt dessen seinen Lesern leicht machen und das
Kommando so hinschreiben, dass es mit kürzeren Zeilen auskommt. 
[…]
Post by Andreas Kohlbach
Der Aufwand nur des Postens halber?
Um der Leser willen. 
Post by Andreas Kohlbach
Manchmal "dürfen" es mehr als 80 Zeichen sein. Gibt mitunter URLs,
die diese Länge überschreiten. Das Umbrechen macht sie
"nicht-klickbar".
Wenn's nicht geht, geht's halt nicht. 

Ich habe irgendwo mal das Gerücht gelesen, dass in Usenet‐Postings
von Winkelklammern (<…>) eingefasste URLs etwas robuster gegen
Umbrechen sind als uneingefasste.  Ob's stimmt? 
Andreas Kohlbach
2021-02-19 03:00:42 UTC
Permalink
Post by Helmut Waitzmann
Post by Andreas Kohlbach
Post by Helmut Waitzmann
Man könnte es ja statt dessen seinen Lesern leicht machen und das
Kommando so hinschreiben, dass es mit kürzeren Zeilen auskommt. 
[…]
Post by Andreas Kohlbach
Der Aufwand nur des Postens halber?
Um der Leser willen. 
Dein Beispiel (eine Funktion?) war gut und richtig. Sieht aber IMO
"gefährlicher" als die lange Zeile aus.
Post by Helmut Waitzmann
Post by Andreas Kohlbach
Manchmal "dürfen" es mehr als 80 Zeichen sein. Gibt mitunter URLs,
die diese Länge überschreiten. Das Umbrechen macht sie
"nicht-klickbar".
Wenn's nicht geht, geht's halt nicht. 
Ich habe irgendwo mal das Gerücht gelesen, dass in Usenet‐Postings von
Winkelklammern (<…>) eingefasste URLs etwas robuster gegen Umbrechen
sind als uneingefasste.  Ob's stimmt? 
Weiß ich auch nicht. Die Klammern sind aber gut, Zeichen ohne Leerzeichen
zwischen der URL und was davor oder dahinter kommt, aus der URL zu
halten.

Wenn also eine URL vorkommt, wie bei https://www.gnu.org, wird das Komma
sie nicht klickbar machen.

Wenn aber die URL in Klammern steht, wie bei <https://www.gnu.org/>, sollte
das Komma dagegen nicht stören.
--
Andreas

PGP fingerprint 952B0A9F12C2FD6C9F7E68DAA9C2EA89D1A370E0
Eike Rathke
2021-02-19 14:27:20 UTC
Permalink
Post by Andreas Kohlbach
Post by Helmut Waitzmann
Ich habe irgendwo mal das Gerücht gelesen, dass in Usenet‐Postings von
Winkelklammern (<…>) eingefasste URLs etwas robuster gegen Umbrechen
sind als uneingefasste.  Ob's stimmt? 
Weiß ich auch nicht. Die Klammern sind aber gut, Zeichen ohne Leerzeichen
zwischen der URL und was davor oder dahinter kommt, aus der URL zu
halten.
Wenn also eine URL vorkommt, wie bei https://www.gnu.org, wird das Komma
sie nicht klickbar machen.
Haengt vom darstellenden agent ab, hier mit slrn im Gnome Terminal (was
das entscheidende ist) kein Problem.
Post by Andreas Kohlbach
Wenn aber die URL in Klammern steht, wie bei <https://www.gnu.org/>, sollte
das Komma dagegen nicht stören.
Generell ist das die eindeutigere Variante. Manche agents koennen damit
sogar umgebrochene URLs richtig erkennen.

Eike
--
OpenPGP/GnuPG encrypted mail preferred in all private communication.
GPG key 0x6A6CD5B765632D3A - 2265 D7F3 A7B0 95CC 3918 630B 6A6C D5B7 6563 2D3A
Use LibreOffice! https://www.libreoffice.org/
Andreas Kohlbach
2021-02-19 17:09:25 UTC
Permalink
Post by Eike Rathke
Post by Andreas Kohlbach
Post by Helmut Waitzmann
Ich habe irgendwo mal das Gerücht gelesen, dass in Usenet‐Postings von
Winkelklammern (<…>) eingefasste URLs etwas robuster gegen Umbrechen
sind als uneingefasste.  Ob's stimmt? 
Weiß ich auch nicht. Die Klammern sind aber gut, Zeichen ohne Leerzeichen
zwischen der URL und was davor oder dahinter kommt, aus der URL zu
halten.
Wenn also eine URL vorkommt, wie bei https://www.gnu.org, wird das Komma
sie nicht klickbar machen.
Haengt vom darstellenden agent ab, hier mit slrn im Gnome Terminal (was
das entscheidende ist) kein Problem.
Ich sehe gerade, Gnus hat auch keine Probleme.

Mal schauen, wie das bei https://www.gnu.org. (mit "." statt ",") aussieht...
--
Andreas

PGP fingerprint 952B0A9F12C2FD6C9F7E68DAA9C2EA89D1A370E0
j***@schily.net
2021-02-19 18:06:37 UTC
Permalink
Post by Andreas Kohlbach
Mal schauen, wie das bei https://www.gnu.org. (mit "." statt ",") aussieht...
Ein . am Ende einer Domain ist das delbe wie ein / am Anfang eines Pfadnamens.

Damit entsteht ein sbsoluter Name.
--
EMail:***@schily.net Jörg Schilling D-13353 Berlin
Blog: http://schily.blogspot.com/
URL: http://cdrecord.org/private/ http://sourceforge.net/projects/schilytools/files/
Andreas Kohlbach
2021-02-19 19:01:38 UTC
Permalink
Post by j***@schily.net
Post by Andreas Kohlbach
Mal schauen, wie das bei https://www.gnu.org. (mit "." statt ",") aussieht...
Ein . am Ende einer Domain ist das delbe wie ein / am Anfang eines Pfadnamens.
Damit entsteht ein sbsoluter Name.
Also wäre gnu.org. gültig? Der Gnus Newsreader hier sieht das anders,
weil er den ".", ebenfalls wie schon das "," im Beispiel davor, *nicht*
als Teil der URI ansieht.
--
Andreas
Stefan+ (Stefan Froehlich)
2021-02-20 08:17:23 UTC
Permalink
Post by Andreas Kohlbach
Post by j***@schily.net
Post by Andreas Kohlbach
Mal schauen, wie das bei https://www.gnu.org. (mit "." statt
",") aussieht...
Ein . am Ende einer Domain ist das delbe wie ein / am Anfang
eines Pfadnamens.
Damit entsteht ein sbsoluter Name.
Also wäre gnu.org. gültig?
Ja.
Post by Andreas Kohlbach
Der Gnus Newsreader hier sieht das anders, weil er den ".",
ebenfalls wie schon das "," im Beispiel davor, *nicht* als Teil
der URI ansieht.
Im Regelfall schreibt man den abschließenden Punkt nicht, da die
Unterscheidung praxisfern ist: Entweder verwendet man lokale
Hostnamen, oder absolute Pfade, die dann keine lokale Entsprechung
haben (natürlich könnte ich einen Hostnamen www.gnu.org.home
erstellen, aber wer tut so etwas schon?). Daher ist die
Interpretation des Punkts als Satzzeichen in 99,9% der Fälle das,
was der Schreiber gemeint hat, und in den paar Ausnahmefällen
wenigstens nicht schädlich.

Servus,
Stefan
--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Stefan - Für den sympathischen Halunken von Welt: Bemutteln damit es zappelt!
(Sloganizer)
Sieghard Schicktanz
2021-02-19 19:35:31 UTC
Permalink
Hallo Andreas,
Post by Andreas Kohlbach
Post by Helmut Waitzmann
Ich habe irgendwo mal das Gerücht gelesen, dass in Usenet‐Postings von
Winkelklammern (<…>) eingefasste URLs etwas robuster gegen Umbrechen
sind als uneingefasste.  Ob's stimmt? 
"Manchmal" stimmt das, "manchmal" sogar nicht nur für Usenet‐Postings,
sondern auch für EMails. Hängt aber woh vom benutzten Programm ab...
Post by Andreas Kohlbach
Weiß ich auch nicht. Die Klammern sind aber gut, Zeichen ohne Leerzeichen
zwischen der URL und was davor oder dahinter kommt, aus der URL zu
halten.
Sie sind auch gut dafür, über mehr als eine Zeile umbrochene URLs
zusammenzuhalten (wie bei der deutscheninzwischen nicht mehr so übichen
Zusammenschreibung).
Post by Andreas Kohlbach
Wenn also eine URL vorkommt, wie bei https://www.gnu.org, wird das Komma
sie nicht klickbar machen.
Nur bei einem besonders bescheuerten "Client"-Programm.
Post by Andreas Kohlbach
Wenn aber die URL in Klammern steht, wie bei <https://www.gnu.org/>,
sollte das Komma dagegen nicht stören.
Das sollte nämlich eigentlich überhaupt nicht stören, weil es kein
Bestandteil von URLs sein kann, wie auch andere Sonderzeichen u.ä.
--
--
(Weitergabe von Adressdaten, Telefonnummern u.ä. ohne Zustimmung
nicht gestattet, ebenso Zusendung von Werbung oder ähnlichem)
-----------------------------------------------------------
Mit freundlichen Grüßen, S. Schicktanz
-----------------------------------------------------------
Andreas Kohlbach
2021-02-20 00:17:55 UTC
Permalink
Post by Sieghard Schicktanz
Post by Andreas Kohlbach
Wenn aber die URL in Klammern steht, wie bei <https://www.gnu.org/>,
sollte das Komma dagegen nicht stören.
Das sollte nämlich eigentlich überhaupt nicht stören, weil es kein
Bestandteil von URLs sein kann, wie auch andere Sonderzeichen u.ä.
IIRC habe ich schon "," in URLs gesehen. Und Sonderzeichen wie "&" oder
"?" sind Gang und Gäbe.

hat u.a. ein "?", wie fast jede
andere Youtube-URL auch. ^
--
Andreas
Eike Rathke
2021-02-20 14:03:15 UTC
Permalink
Post by Sieghard Schicktanz
Post by Andreas Kohlbach
Wenn aber die URL in Klammern steht, wie bei <https://www.gnu.org/>,
sollte das Komma dagegen nicht stören.
Das sollte nämlich eigentlich überhaupt nicht stören, weil es kein
Bestandteil von URLs sein kann, wie auch andere Sonderzeichen u.ä.
Komma "," kann durchaus Bestandteil von URIs/URLs sein, es gehoert zwar
zu den URI reserved characters sub-delims, das heisst aber nicht, dass
es nicht vorkommen darf.

Siehe
https://tools.ietf.org/html/rfc3986#section-2.2
https://tools.ietf.org/html/rfc3986#appendix-A

Auch als URL extra character gelistet:
https://tools.ietf.org/html/rfc1738#section-5

Eike
--
OpenPGP/GnuPG encrypted mail preferred in all private communication.
GPG key 0x6A6CD5B765632D3A - 2265 D7F3 A7B0 95CC 3918 630B 6A6C D5B7 6563 2D3A
Use LibreOffice! https://www.libreoffice.org/
Eike Rathke
2021-02-18 21:35:57 UTC
Permalink
Post by Marc Haber
|ip --oneline address | sed -n '/inet[[:space:]]\+/{s/.*inet[[:space:]]\+\([^[:space:]]\+\).*/\1/;p;}'
Der address match und block ist unnoetig, ein full line match mit
replacement reicht (auch mit sed -E extended regex fuer bessere
Lesbarkeit und explizitem IP/Netmask match " inet broken" ist kein
match ;-)

ip --oneline address | sed -E -n 's/.*[[:space:]]+inet[[:space:]]+([0-9./]+).*/\1/p'

Um ein spezielles interface abzufragen:

ip --oneline address show dev eth0 | ...

wobei heutzutage den wilden Interface-Namen ala enp0s32f5 Rechnung zu
tragen ist.

Eike
--
OpenPGP/GnuPG encrypted mail preferred in all private communication.
GPG key 0x6A6CD5B765632D3A - 2265 D7F3 A7B0 95CC 3918 630B 6A6C D5B7 6563 2D3A
Use LibreOffice! https://www.libreoffice.org/
Jan Novak
2021-02-17 09:06:07 UTC
Permalink
Post by Alexander Goetzenstein
Hallo,
in einem Script möchte ich feststellen, ob ich mich in einem bestimmten
Netz befinde. Nun könnte ich einfach die Ausgabe von
ip address | grep 192.168.123.mit cut zerlegen, aber das erscheint mir etwas "unelegant" zu sein,
zumal sich das genaue Ausgabeformat mit dem nächsten Update oder
Spracheinstellung ändern könnte. Wie macht man es besser?
hostname -I


Jan
Eike Rathke
2021-02-18 19:06:56 UTC
Permalink
Post by Jan Novak
hostname -I
Loopback device wird zwar nicht ausgegeben, ist aber nur brauchbar
solange nicht mehr als ein Interface eine IP zugewiesen hat (z.B. LAN
und WLAN), da sonst alle in nicht vorgegebener Reihenfolge auf einer
Zeile mit Leerzeichen ausgegeben werden.

Eike
--
OpenPGP/GnuPG encrypted mail preferred in all private communication.
GPG key 0x6A6CD5B765632D3A - 2265 D7F3 A7B0 95CC 3918 630B 6A6C D5B7 6563 2D3A
Use LibreOffice! https://www.libreoffice.org/
Urs Janßen
2021-02-18 21:09:56 UTC
Permalink
Post by Eike Rathke
Post by Jan Novak
hostname -I
Loopback device wird zwar nicht ausgegeben, ist aber nur brauchbar
solange nicht mehr als ein Interface eine IP zugewiesen hat (z.B. LAN
und WLAN), da sonst alle in nicht vorgegebener Reihenfolge auf einer
Zeile mit Leerzeichen ausgegeben werden.
hostname -I|tr ' ' '\n'|sort
Eike Rathke
2021-02-18 21:39:02 UTC
Permalink
Post by Urs Janßen
hostname -I|tr ' ' '\n'|sort
Wenn schon dann sort -n ;-)
Ja, damit ist allerdings immer noch nicht klar, welchem interface die IP
gehoert.

Eike
--
OpenPGP/GnuPG encrypted mail preferred in all private communication.
GPG key 0x6A6CD5B765632D3A - 2265 D7F3 A7B0 95CC 3918 630B 6A6C D5B7 6563 2D3A
Use LibreOffice! https://www.libreoffice.org/
Urs Janßen
2021-02-18 21:52:09 UTC
Permalink
Post by Eike Rathke
Ja, damit ist allerdings immer noch nicht klar, welchem interface die IP
gehoert.
ich sagte ja schon mal, nimm ip --oneline address|awk

niko% ip --oneline address | awk '$3~/inet$/{print $2"\t"$4}'
lo 127.0.0.1/8
eth0 192.168.1.6/24

urs
--
1 A$="HIKAAAIMAONMMIIMBKNAKJBLINBBNAINBEADKJMAINBFADFIGAAAAAKNBJNAINBJNABGA"
2 A$=A$+"CBGACKAAALJEKMANBACNBACINCBNAINCANAINBCNAKCAGMKNAPNMIMAAKNAOGKJBLI"
3 A$=A$+"NBBNAFIEMDBOKKAKLKMKPKBKPKMKLKAKAKAKAKAKAKAKAAA":FORI=1TO91
4 POKE49151+I,(ASC(MID$(A$,2*I-1,1))*16+ASC(MID$(A$,2*I,1))-1105):NEXT:SYS49152
Eike Rathke
2021-02-19 00:29:24 UTC
Permalink
Post by Urs Janßen
Post by Eike Rathke
Ja, damit ist allerdings immer noch nicht klar, welchem interface die IP
gehoert.
ich sagte ja schon mal, nimm ip --oneline address|awk
Ja, das hatten wir schon im anderen subthread.

Eike
--
OpenPGP/GnuPG encrypted mail preferred in all private communication.
GPG key 0x6A6CD5B765632D3A - 2265 D7F3 A7B0 95CC 3918 630B 6A6C D5B7 6563 2D3A
Use LibreOffice! https://www.libreoffice.org/
Stefan Wiens
2021-02-19 00:37:09 UTC
Permalink
Post by Urs Janßen
urs
--
1 A$="HIKAAAIMAONMMIIMBKNAKJBLINBBNAINBEADKJMAINBFADFIGAAAAAKNBJNAINBJNABGA"
2 A$=A$+"CBGACKAAALJEKMANBACNBACINCBNAINCANAINBCNAKCAGMKNAPNMIMAAKNAOGKJBLI"
3 A$=A$+"NBBNAFIEMDBOKKAKLKMKPKBKPKMKLKAKAKAKAKAKAKAKAAA":FORI=1TO91
4 POKE49151+I,(ASC(MID$(A$,2*I-1,1))*16+ASC(MID$(A$,2*I,1))-1105):NEXT:SYS49152
Welchen Emulator braucht man dafür?
--
Stefan
Andreas Kohlbach
2021-02-19 17:07:04 UTC
Permalink
Post by Stefan Wiens
Post by Urs Janßen
urs
--
1 A$="HIKAAAIMAONMMIIMBKNAKJBLINBBNAINBEADKJMAINBFADFIGAAAAAKNBJNAINBJNABGA"
2 A$=A$+"CBGACKAAALJEKMANBACNBACINCBNAINCANAINBCNAKCAGMKNAPNMIMAAKNAOGKJBLI"
3 A$=A$+"NBBNAFIEMDBOKKAKLKMKPKBKPKMKLKAKAKAKAKAKAKAKAAA":FORI=1TO91
4 POKE49151+I,(ASC(MID$(A$,2*I-1,1))*16+ASC(MID$(A$,2*I,1))-1105):NEXT:SYS49152
Welchen Emulator braucht man dafür?
VICE (dedicated) oder MAME fallen mir ein. MAME würde ich dem Neuling
nicht empfehlen, weil man sich einarbeiten muss, bis man den bedienen
kann. VICE funktioniert gleich. Vielleicht davon abgesehen, dass ihm (aus
Gründen des Copyrights) diverse ROMs fehlen.

Allerdings werden bei mir beim Einfügen die "A$" durch "$" ersetzt.
--
Andreas
Lesen Sie weiter auf narkive:
Loading...