Son IP publique en une ligne de commande

Vos petites astuces, répertoire des tutoriels et astuces
Répondre
Avatar du membre
kiri
Messages : 41
Enregistré le : lun. 4 juin 2018 14:02
Localisation : insmod

Son IP publique en une ligne de commande

Message par kiri »

...
Modifié en dernier par kiri le mar. 19 juin 2018 12:26, modifié 1 fois.

Avatar du membre
alain
Administrateur du site
Messages : 14701
Enregistré le : dim. 11 oct. 2015 23:41
Localisation : Chelles
Contact :

Re: Son IP publique en une ligne de commande

Message par alain »

Salut Kiri Image

Merci pour ce petit cours sur l'utilisation de grep et sed.

Comme j'ai dit dans la prèz de Kotec,
Je me suis penché (non je ne suis pas tombé :l ) sur les options que tu utilises. Car j'aimerai progresser un peu.
Il s'avère que je n'ai pas compris :l :roll:
le man de grep reste nébuleux, pour mon cerveau qui certes est fatigué, mais quand même...
Exemple: pour l'opton "o" :
N'imprimez que les parties appariées (non vides) d'une ligne correspondante, chacune de ces parties étant sur une ligne de sortie distincte.
c'est c'la oui c'est c'la...
et pour "P" :
Interprétez le modèle comme une expression régulière compatible Perl (PCRE). Ceci est très expérimental et grep -P peut avertir de fonctionnalités non implémentées.
Pas mieux... :oops:

Je prends donc acte que ça fonctionne, même si je n'ai pas compris comment tu as as fait, dans l'exemple avec ipecho, pour déterminer la syntaxe nécessaire à "P" pour ne garder
que ce qui est compris entre "is" et "/h1" :
'(?<=is ).*(?=<\/h1>)'
Tu l'as trouvé comment ça?
Ni pourquoi le "<" du html devant "/h1" n’apparaît pas, vu qu'a première vu tu lui dis d’écrire ce qu'il y a devant "/h1"... Oui certainement que les "<" et ">" du html ont un comportement particulier, mais pourquoi???

Enfin bref, c'est pas bien grave, ni important, l'important c'est que ça fonctionne, et que je pourrais utiliser ces options pour me la péter sur le fofo :l :lol:
Ces temps ci, je n'ai pas le temps ni les capacités pour réfléchir et apprendre. Mais si tu veux au mois d’août j'aurai l’esprit un peu plus disponible vu que je serai
célibataire pour quelques semaines, J'ouvrirai peut être un sujet sur l'utilisation des commandes de filtrage. Car malgré une littérature importante sur le sujet
(merci @Arghlub pour les liens) j'y comprends pas grand chose...

Encore merci pour ce partage. Image
PC are like air conditioning, they becomes useless when you open Windows (L.T)
PC1 : CM : ASRock 990FX | CPU: AMD FX 8350-8 cores, 4 GHz | RAM: 16 Go DDR3 1600 MHz | CG: ATI RX 580-8 Go | OS : LM 20.3 Uma Xfce 4.16 | K: 5.4
PC2
:Core2 Quad Q9650 @ 3 GHz | CG: Nvidia GTX 650TI | OS: LM 21.3 Xfce 4.18| K: 6.5
PC3 :Core i7-2600 @ 3,5 GHz | CG: ATI HD 4650 | OS: Emmade5 Xfce 4.18.0 | K: 6.1
PC4 : AMD Ryzen 5 3500X 4GHz | CG: GTX 970 | Ram : 8GB |OS : Debian 10.5 | K: 5.10
In a world without walls and fences, who needs windows and gates?

Avatar du membre
kiri
Messages : 41
Enregistré le : lun. 4 juin 2018 14:02
Localisation : insmod

Re: Son IP publique en une ligne de commande

Message par kiri »

...
Modifié en dernier par kiri le mar. 19 juin 2018 12:27, modifié 1 fois.

Avatar du membre
alain
Administrateur du site
Messages : 14701
Enregistré le : dim. 11 oct. 2015 23:41
Localisation : Chelles
Contact :

Re: Son IP publique en une ligne de commande

Message par alain »

Ok, j'ai compris :l
Je faisais une erreur, en fait la patern2 (<\/h1>) comprend bien les "<>" du html. donc normal que le premier "<" ne soit pas affiché.
J'avais très mal lu et interprété :oops:
Je ne savais pas que grep contrairement à sed n'avais pas besoin qu'on annule le /.
Encore un truc que j'apprends.
Merci pour ces explications. J'ai bien d'autres questions, mais ça attendra août, car la je ne suis pas "open" , "aware" peut être? :l :D
PC are like air conditioning, they becomes useless when you open Windows (L.T)
PC1 : CM : ASRock 990FX | CPU: AMD FX 8350-8 cores, 4 GHz | RAM: 16 Go DDR3 1600 MHz | CG: ATI RX 580-8 Go | OS : LM 20.3 Uma Xfce 4.16 | K: 5.4
PC2
:Core2 Quad Q9650 @ 3 GHz | CG: Nvidia GTX 650TI | OS: LM 21.3 Xfce 4.18| K: 6.5
PC3 :Core i7-2600 @ 3,5 GHz | CG: ATI HD 4650 | OS: Emmade5 Xfce 4.18.0 | K: 6.1
PC4 : AMD Ryzen 5 3500X 4GHz | CG: GTX 970 | Ram : 8GB |OS : Debian 10.5 | K: 5.10
In a world without walls and fences, who needs windows and gates?

Avatar du membre
arghlub
Administrateur du site
Messages : 10421
Enregistré le : dim. 21 mai 2017 08:19
Localisation : Provence
Contact :

Re: Son IP publique en une ligne de commande

Message par arghlub »

Salut kiri et Alain ;)

Pour Alain, je reviens sur :

- option -o de Grep
L'option -o permet de n'imprimer que la chaîne recherchée et pas la ligne entière. Et chaque motif trouvé est envoyé vers la sortie sur une nouvelle ligne.
Cela ne représente guère d'intérêt, sauf si on le couple avec des expressions régulières.
Un exemple simple pour comprendre :

Code : Tout sélectionner

$ echo -e "aaa bbb\nccc ddd\naaaa bbbb"
aaa bbb
ccc ddd
aaaa bbbb

$ echo -e "aaa bbb\nccc ddd\naaaa bbbb" | grep "aa"       # sans l'option o
aaa bbb
aaaa bbbb

$ echo -e "aaa bbb\nccc ddd\naaaa bbbb" | grep -o "aa"    # avec l'option o
aa
aa
aa
- option -P de Grep
Les expressions régulières peuvent avoir plusieurs syntaxes :
  • expressions régulières basiques (BRE) : le grep par défaut ;
  • expressions régulières étendues (ERE) : à utiliser avec «grep -E» (ou «egrep» déprécié) ;
  • expressions régulières compatibles PERL (PCRE) qui ont une syntaxe dérivée du langage Perl : à utiliser avec «grep -P».
Donc, si une expression régulière PCRE est utilisée, il faut utiliser l'option -P.

;)
Tour1 (custom)CM MSI Z270 M3 | CPU Intel I7-7700K | CG Nvidia GTX 1080 | RAM 16Go | tripleBoot : Debian 11 | MXlinux 21 | LMint 19.3 | XFCE
Tour2 (custom)CM Gigabyte | CPU AMD Athlon 5200+ | CG Nvidia GTX 560 | RAM 6Go | FreeBSD 12.1 XFCE
Portable1 MSI GF75 Thin 9SC | CPU Intel I7-9750H | CG Nvidia GTX 1650 | RAM 32Go | dualBoot : LMint 20.2 | MXlinux 21 | XFCE
Portable2 MacBook Air A1466 (2015) | CPU Intel I5-5250U | CG Intel HD Graphics 6000 | RAM 8Go | dualBoot : macOS Sierra | MXlinux 21 XFCE
─────( pour une informatique libre ! -membre en stand-by de l' April.org────────────────

mpedro
Messages : 1517
Enregistré le : dim. 8 nov. 2015 22:13
Contact :

Re: Son IP publique en une ligne de commande

Message par mpedro »

Message edité
T aurais pu faire plus simple.
Avec curl wget ou dig. :D
Modifié en dernier par mpedro le dim. 17 juin 2018 11:33, modifié 2 fois.
Stretch 32bits cinnamon/Fedora25/Sarah
Compaq 8510p/MSI GE70/Raspberry Pi2

zeb
Messages : 16473
Enregistré le : ven. 19 juin 2015 22:13
Localisation : plus ici

Re: Son IP publique en une ligne de commande

Message par zeb »

:l
Merci pour la soluc mpedro :lol:
Ou alors c'est une question, là il manquerait le point d'interrogation :D

Avatar du membre
alain
Administrateur du site
Messages : 14701
Enregistré le : dim. 11 oct. 2015 23:41
Localisation : Chelles
Contact :

Re: Son IP publique en une ligne de commande

Message par alain »

Salut Arghlub.

Okayyy, j'ai compris. C'est quand même plus facile a comprendre avec des exemples concrets :D ...Merci ;)
Donc pour résumer et pour être bien certain que je ne me fourvoie pas en croyant avoir compris alors que non:
Toujours dans l'exemple de ipecho:
'(?<=is ).*(?=<\/h1>)' est une syntaxe dérivée du langage PERL.
Pour que grep la comprenne il faut lui mettre l'option -P.
Et pour qu'il n'affiche que la chaîne recherchée (entre is et </h1>) et non la totalité de la ligne qui est un truc du genre:
«<h1>Your IP is xxx.xxx.xxx.xxx</h1>» , il faut lui mettre l'option -o...
Du coup, je me demande si on ne pouvait pas utiliser grep -o -P dans le script de la température du GPU à la place de (n'importe) awk? Image
Le problème aurait été de savoir quoi mettre en "patern2" vu que dans ce cas le C (de Celsius) est la dernière lettre du résultat et qu'il faut quelle apparaisse...Image
PC are like air conditioning, they becomes useless when you open Windows (L.T)
PC1 : CM : ASRock 990FX | CPU: AMD FX 8350-8 cores, 4 GHz | RAM: 16 Go DDR3 1600 MHz | CG: ATI RX 580-8 Go | OS : LM 20.3 Uma Xfce 4.16 | K: 5.4
PC2
:Core2 Quad Q9650 @ 3 GHz | CG: Nvidia GTX 650TI | OS: LM 21.3 Xfce 4.18| K: 6.5
PC3 :Core i7-2600 @ 3,5 GHz | CG: ATI HD 4650 | OS: Emmade5 Xfce 4.18.0 | K: 6.1
PC4 : AMD Ryzen 5 3500X 4GHz | CG: GTX 970 | Ram : 8GB |OS : Debian 10.5 | K: 5.10
In a world without walls and fences, who needs windows and gates?

Avatar du membre
arghlub
Administrateur du site
Messages : 10421
Enregistré le : dim. 21 mai 2017 08:19
Localisation : Provence
Contact :

Re: Son IP publique en une ligne de commande

Message par arghlub »

alain a écrit :Du coup, je me demande si on ne pouvait pas utiliser grep -o -P dans le script de la température du GPU à la place de (n'importe) awk? Image
Le problème aurait été de savoir quoi mettre en "patern2" vu que dans ce cas le C (de Celsius) est la dernière lettre du résultat et qu'il faut quelle apparaisse...Image
Oui effectivement on aurait pu utiliser «grep -o» mais ça aurait été plus de bidouilles alors que awk qui est plus puissant fait ça (presque) tout seul.
Pour le "C" qui aurait disparu si on avait utiliser «grep -o», il aurait suffit de le rajouter. ;)
Tour1 (custom)CM MSI Z270 M3 | CPU Intel I7-7700K | CG Nvidia GTX 1080 | RAM 16Go | tripleBoot : Debian 11 | MXlinux 21 | LMint 19.3 | XFCE
Tour2 (custom)CM Gigabyte | CPU AMD Athlon 5200+ | CG Nvidia GTX 560 | RAM 6Go | FreeBSD 12.1 XFCE
Portable1 MSI GF75 Thin 9SC | CPU Intel I7-9750H | CG Nvidia GTX 1650 | RAM 32Go | dualBoot : LMint 20.2 | MXlinux 21 | XFCE
Portable2 MacBook Air A1466 (2015) | CPU Intel I5-5250U | CG Intel HD Graphics 6000 | RAM 8Go | dualBoot : macOS Sierra | MXlinux 21 XFCE
─────( pour une informatique libre ! -membre en stand-by de l' April.org────────────────

Avatar du membre
kiri
Messages : 41
Enregistré le : lun. 4 juin 2018 14:02
Localisation : insmod

Re: Son IP publique en une ligne de commande

Message par kiri »

...

Répondre