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
modérateur
Messages : 7975
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
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 19.3 Tricia Xfce 4.14.1 | K: 4.15.0-88
PC2 :Core2 Quad Q9650 @ 3 GHz | CG: Radeon HD 4850 | OS: LM 19.3 Xfce 4.14.1 | K: 5.3.0-42
PC3 :Core i7-2600 @ 3,5 GHz | CG: ATI HD 4650 | OS: emmade3 Xfce 4.12.4 | K: 4.19.0-6
PC4 :Core2 Quad Q9650 @ 3 GHz | CG: GT 630 | OS : LM17.3 KDE | K : 3.19

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
modérateur
Messages : 7975
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
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 19.3 Tricia Xfce 4.14.1 | K: 4.15.0-88
PC2 :Core2 Quad Q9650 @ 3 GHz | CG: Radeon HD 4850 | OS: LM 19.3 Xfce 4.14.1 | K: 5.3.0-42
PC3 :Core i7-2600 @ 3,5 GHz | CG: ATI HD 4650 | OS: emmade3 Xfce 4.12.4 | K: 4.19.0-6
PC4 :Core2 Quad Q9650 @ 3 GHz | CG: GT 630 | OS : LM17.3 KDE | K : 3.19

In a world without walls and fences, who needs windows and gates?

Avatar du membre
arghlub
Administrateur du site
Messages : 8190
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 10 | MXlinux 19 | 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 | LMint 19.3 | XFCE
Portable2 Lenovo G50-80 (boosté RAM+SSD) | CPU Intel I3-4005U | RAM 8Go | tripleBoot : LMint 18.3 | MXlinux 19 | LMint 19.3 | XFCE
─────( pour une informatique libre ! -membre 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

Avatar du membre
zeb
Messages : 16497
Enregistré le : ven. 19 juin 2015 22:13

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
LMDE4 Cinnamon sur tour perso
Je ne réceptionne plus de MP ! Merci !

Avatar du membre
alain
modérateur
Messages : 7975
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
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 19.3 Tricia Xfce 4.14.1 | K: 4.15.0-88
PC2 :Core2 Quad Q9650 @ 3 GHz | CG: Radeon HD 4850 | OS: LM 19.3 Xfce 4.14.1 | K: 5.3.0-42
PC3 :Core i7-2600 @ 3,5 GHz | CG: ATI HD 4650 | OS: emmade3 Xfce 4.12.4 | K: 4.19.0-6
PC4 :Core2 Quad Q9650 @ 3 GHz | CG: GT 630 | OS : LM17.3 KDE | K : 3.19

In a world without walls and fences, who needs windows and gates?

Avatar du membre
arghlub
Administrateur du site
Messages : 8190
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 10 | MXlinux 19 | 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 | LMint 19.3 | XFCE
Portable2 Lenovo G50-80 (boosté RAM+SSD) | CPU Intel I3-4005U | RAM 8Go | tripleBoot : LMint 18.3 | MXlinux 19 | LMint 19.3 | XFCE
─────( pour une informatique libre ! -membre 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