expression réguliere sur parametres réseau [shell] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 17-12-2007 à 09:54:16
Je vois pas trop comment faire du "et bit à bit", mais tu peux toujours faire une petite fonction qui boucle :
#!/bin/sh get_network() { for i in $(seq 1 4); do if [ $i -le 3 ]; then
|
bon évidemment c'est tout lent, mais en attendant de trouver mieux tu peux avancer comme ça
Marsh Posté le 17-12-2007 à 09:58:25
Ben ouais, mais ta boucle ne fonctionne que si son masque est 0 ou 255, sinon le résultat est faux
Mais c'est clair qu'en shell, faire un ET logique, c'est moyen quoi
Marsh Posté le 17-12-2007 à 10:03:19
wedgeant a écrit : Ben ouais, mais ta boucle ne fonctionne que si son masque est 0 ou 255, sinon le résultat est faux |
oué le masque doit être 0 ou 255.
Sinon on peut gruger et faire un shell script qui appelle un langage de prog plus évolué, genre :
ruby <<EOD | sort | uniq -c | sort -n |
Marsh Posté le 17-12-2007 à 10:58:31
Je vous remercie de toute vos réponse pertinantes, aprés avoir regarder des doc j'ai réaliser le petit script en php c'est beaucoup plus simple merci
Marsh Posté le 18-12-2007 à 09:49:15
En shell c'est tout con, tu prend le script de Xavier_OM et tu remplaces simplement le if/else/fi par :
echo -n $(( iptoken & masktoken )) |
Oui, on peut manipuler les bits en shell
Marsh Posté le 18-12-2007 à 09:57:43
matafan a écrit : En shell c'est tout con, tu prend le script de Xavier_OM et tu remplaces simplement le if/else/fi par :
|
Marsh Posté le 19-12-2007 à 00:36:52
Arf,
personne connais ipcalc ou bien ?
Code :
|
Matafan, peux tu expliquer ta commande ?
tu teste succesivement les deux variables ?
Code :
|
Marsh Posté le 19-12-2007 à 10:37:11
Le "&" dans une expression arithmétique "$(( ... ))" est un "et" bit-à-bit (c'est à dire que le bit "n" du résultat est le et logique des bits "n" des deux opérandes).
Marsh Posté le 20-12-2007 à 03:01:11
Oui, moi je me sert de & en bash arythmetique pour verifier 2 conditions.
Mais dans le cas pratique ici, je comprends mal.
Marsh Posté le 20-12-2007 à 05:48:16
sputnick a écrit : Oui, moi je me sert de & en bash arythmetique pour verifier 2 conditions. |
ici il sert pour une comparaison bit à bit. Je savais pas que le shell permettait de faire ça perso j'aurai utilisé ipcalc
Marsh Posté le 20-12-2007 à 09:45:36
black_lord a écrit : |
Perso jme sers de (( )) assez souvent mais je savais pas pour le bit à bit.
Mais sinon on peut faire ca avec :
# loop conditions. |
Si ca intéresse qqun...
Marsh Posté le 17-12-2007 à 08:33:26
Bonjour, je suis en train d'écrire un script shell qui réécrit le fichier /etc/network/interfaces à partir d'une interface web, j'utilise un shellexec qui lance mon script shell, tout fonctionne, le seul probleme c'est que je doit taper
adresse ip
masque
réseau
et je voudrais savoir si quelqu'un sait comment je peux obtenir le réseau à partir du masque et de l'adresse ip
normalement
ex
ip 192.168. 1. 1
masque 255.255.255.0
réseau 192.168. 1 .0
en gros il faut recopier l'adress ip en méttant des 0 ou il y a 0 dans le masque mais je connait pas la commande à faire sous linux, j'ai testé sed , expr et awk mais je n'arrive pas à le faire sans donnée un nombre de caractere à partir duquel il faut couper, merci de votre aide