Je cherche un outil, pour qu'en ligne de commande, je puisse trouver le
netmask correspondant à 1 range d'adresses IP, genre :
$ mon_outil 192.168.0.1 192.168.0.255
192.168.0.1/24
J'en trouve plein qui fonctionnent dans l'autre sens, comme ipcalc, et la
requête google à faire ne me saute pas aux yeux ;)
Je cherche un outil, pour qu'en ligne de commande, je puisse trouver le netmask correspondant à 1 range d'adresses IP, genre : $ mon_outil 192.168.0.1 192.168.0.255 192.168.0.1/24
J'en trouve plein qui fonctionnent dans l'autre sens, comme ipcalc, et la requête google à faire ne me saute pas aux yeux ;)
Je n'ai pas de solution toute faite, mais voici comment je procèderais si je devais le faire.
1) traduire les adresses IP de début et de fin en binaire
2) Compter le nombre de chiffres identiques à partir du début -- stopper dès que les chiffres diffèrent.
Il y en a 24
Note qu'il n'est pas forcément utile de tout traduire en binaire. Tant que les nombres de l'adresse IP sont identiques, tu peux ajouter 8 pour chaque nombre ; dès qu'ils diffèrent, tu regardes les premiers bits identiques (entre 0 et 7) de ce nombre.
Je prends un autre exemple : 192.168.80.1 à 192.168.95.255
*) 192 = 192 : 8 bits *) 168 = 168 : 8 + 8 bits = 16 bits *) 80 != 95 : 80 = 01010000 95 = 01011111 Les 4 premiers bits sont identiques : 16 + 4 bits = 20 bits *) Inutile de regarder le 4e octet
Donc 192.168.80.1/20
Bonjour,
Le 09/01/2015 22:23, Christophe PEREZ a écrit :
Je cherche un outil, pour qu'en ligne de commande, je puisse trouver le
netmask correspondant à 1 range d'adresses IP, genre :
$ mon_outil 192.168.0.1 192.168.0.255
192.168.0.1/24
J'en trouve plein qui fonctionnent dans l'autre sens, comme ipcalc, et la
requête google à faire ne me saute pas aux yeux ;)
Je n'ai pas de solution toute faite, mais voici comment je procèderais
si je devais le faire.
1) traduire les adresses IP de début et de fin en binaire
2) Compter le nombre de chiffres identiques à partir du
début -- stopper dès que les chiffres diffèrent.
Il y en a 24
Note qu'il n'est pas forcément utile de tout traduire en binaire.
Tant que les nombres de l'adresse IP sont identiques, tu peux
ajouter 8 pour chaque nombre ; dès qu'ils diffèrent, tu regardes
les premiers bits identiques (entre 0 et 7) de ce nombre.
Je prends un autre exemple : 192.168.80.1 à 192.168.95.255
*) 192 = 192 : 8 bits
*) 168 = 168 : 8 + 8 bits = 16 bits
*) 80 != 95 :
80 = 01010000
95 = 01011111
Les 4 premiers bits sont identiques : 16 + 4 bits = 20 bits
*) Inutile de regarder le 4e octet
Je cherche un outil, pour qu'en ligne de commande, je puisse trouver le netmask correspondant à 1 range d'adresses IP, genre : $ mon_outil 192.168.0.1 192.168.0.255 192.168.0.1/24
J'en trouve plein qui fonctionnent dans l'autre sens, comme ipcalc, et la requête google à faire ne me saute pas aux yeux ;)
Je n'ai pas de solution toute faite, mais voici comment je procèderais si je devais le faire.
1) traduire les adresses IP de début et de fin en binaire
2) Compter le nombre de chiffres identiques à partir du début -- stopper dès que les chiffres diffèrent.
Il y en a 24
Note qu'il n'est pas forcément utile de tout traduire en binaire. Tant que les nombres de l'adresse IP sont identiques, tu peux ajouter 8 pour chaque nombre ; dès qu'ils diffèrent, tu regardes les premiers bits identiques (entre 0 et 7) de ce nombre.
Je prends un autre exemple : 192.168.80.1 à 192.168.95.255
*) 192 = 192 : 8 bits *) 168 = 168 : 8 + 8 bits = 16 bits *) 80 != 95 : 80 = 01010000 95 = 01011111 Les 4 premiers bits sont identiques : 16 + 4 bits = 20 bits *) Inutile de regarder le 4e octet
Donc 192.168.80.1/20
Baton .rouge
On Fri, 9 Jan 2015 21:23:46 +0000 (UTC), Christophe PEREZ wrote:
Bonjour,
Je cherche un outil, pour qu'en ligne de commande, je puisse trouver le netmask correspondant à 1 range d'adresses IP, genre : $ mon_outil 192.168.0.1 192.168.0.255 192.168.0.1/24
J'en trouve plein qui fonctionnent dans l'autre sens, comme ipcalc, et la requête google à faire ne me saute pas aux yeux ;)
On Fri, 9 Jan 2015 21:23:46 +0000 (UTC), Christophe PEREZ
<chris@novazur.fr> wrote:
Bonjour,
Je cherche un outil, pour qu'en ligne de commande, je puisse trouver le
netmask correspondant à 1 range d'adresses IP, genre :
$ mon_outil 192.168.0.1 192.168.0.255
192.168.0.1/24
J'en trouve plein qui fonctionnent dans l'autre sens, comme ipcalc, et la
requête google à faire ne me saute pas aux yeux ;)
pas testé, mais du côté excel ?
http://trk.free.fr/ipcalc/
--
Les assistés du CAC 40 :
http://www.youtube.com/watch?feature=player_detailpage&v=W5Yx_diRxA8#tH
On Fri, 9 Jan 2015 21:23:46 +0000 (UTC), Christophe PEREZ wrote:
Bonjour,
Je cherche un outil, pour qu'en ligne de commande, je puisse trouver le netmask correspondant à 1 range d'adresses IP, genre : $ mon_outil 192.168.0.1 192.168.0.255 192.168.0.1/24
J'en trouve plein qui fonctionnent dans l'autre sens, comme ipcalc, et la requête google à faire ne me saute pas aux yeux ;)
Euh... je veux pouvoir traiter ça en ligne de commande. Sinon, même en ligne il y a des outils qui le font très bien comme http:// www.hobbesworld.com/reseaux/calcip.php#rech
Le Fri, 09 Jan 2015 23:43:18 +0100, Baton .rouge a écrit :
pas testé, mais du côté excel ?
http://trk.free.fr/ipcalc/
Euh... je veux pouvoir traiter ça en ligne de commande.
Sinon, même en ligne il y a des outils qui le font très bien comme http://
www.hobbesworld.com/reseaux/calcip.php#rech
Euh... je veux pouvoir traiter ça en ligne de commande. Sinon, même en ligne il y a des outils qui le font très bien comme http:// www.hobbesworld.com/reseaux/calcip.php#rech
Christophe PEREZ
Le Fri, 09 Jan 2015 23:06:13 +0100, Olivier Miakinen a écrit :
Hahaha je te reconnais rien là toi.
Je n'ai pas de solution toute faite, mais voici comment je procèderais si je devais le faire.
C'est très gentil de m'expliquer la méthode, qui j'avoue humblement, ne fait pas partie de mes connaissances, mais 1) j'imagine bien qu'un outil ou même un script existe déjà sans que j'ai à réinventer la roue 2) tu m'envoies faire ça en bash toi ? C'est sympa :D
Bon, si jamais je ne trouve pas du tout fait, je serai bien obligé de me forcer à y passer et je serai bien content de retrouver tes explications, mais je croise encore un peu les doigts :)
Le Fri, 09 Jan 2015 23:06:13 +0100, Olivier Miakinen a écrit :
Hahaha je te reconnais rien là toi.
Je n'ai pas de solution toute faite, mais voici comment je procèderais
si je devais le faire.
C'est très gentil de m'expliquer la méthode, qui j'avoue humblement, ne
fait pas partie de mes connaissances, mais
1) j'imagine bien qu'un outil ou même un script existe déjà sans que j'ai
à réinventer la roue
2) tu m'envoies faire ça en bash toi ? C'est sympa :D
Bon, si jamais je ne trouve pas du tout fait, je serai bien obligé de me
forcer à y passer et je serai bien content de retrouver tes explications,
mais je croise encore un peu les doigts :)
Le Fri, 09 Jan 2015 23:06:13 +0100, Olivier Miakinen a écrit :
Hahaha je te reconnais rien là toi.
Je n'ai pas de solution toute faite, mais voici comment je procèderais si je devais le faire.
C'est très gentil de m'expliquer la méthode, qui j'avoue humblement, ne fait pas partie de mes connaissances, mais 1) j'imagine bien qu'un outil ou même un script existe déjà sans que j'ai à réinventer la roue 2) tu m'envoies faire ça en bash toi ? C'est sympa :D
Bon, si jamais je ne trouve pas du tout fait, je serai bien obligé de me forcer à y passer et je serai bien content de retrouver tes explications, mais je croise encore un peu les doigts :)
Erwan David
Christophe PEREZ écrivait :
Bonjour,
Je cherche un outil, pour qu'en ligne de commande, je puisse trouver le netmask correspondant à 1 range d'adresses IP, genre : $ mon_outil 192.168.0.1 192.168.0.255 192.168.0.1/24
J'en trouve plein qui fonctionnent dans l'autre sens, comme ipcalc, et la requête google à faire ne me saute pas aux yeux ;)
Je cherche un outil, pour qu'en ligne de commande, je puisse trouver le
netmask correspondant à 1 range d'adresses IP, genre :
$ mon_outil 192.168.0.1 192.168.0.255
192.168.0.1/24
J'en trouve plein qui fonctionnent dans l'autre sens, comme ipcalc, et la
requête google à faire ne me saute pas aux yeux ;)
Je cherche un outil, pour qu'en ligne de commande, je puisse trouver le netmask correspondant à 1 range d'adresses IP, genre : $ mon_outil 192.168.0.1 192.168.0.255 192.168.0.1/24
J'en trouve plein qui fonctionnent dans l'autre sens, comme ipcalc, et la requête google à faire ne me saute pas aux yeux ;)
Le Sat, 10 Jan 2015 05:32:45 +0000, Christophe PEREZ a écrit :
C'est très gentil de m'expliquer la méthode, qui j'avoue humblement, ne fait pas partie de mes connaissances
Avec tout le respect que je vous dois : faire de l'informatique de bas niveau et ne pas connaître les bases de la numération, c'est le moment d'apprendre : cela pourra certainement resservir :-)
Un journée où on n'a rien appris est une journée de perdue.
Le Sat, 10 Jan 2015 05:32:45 +0000, Christophe PEREZ a écrit :
C'est très gentil de m'expliquer la méthode, qui j'avoue humblement, ne
fait pas partie de mes connaissances
Avec tout le respect que je vous dois : faire de l'informatique de bas
niveau et ne pas connaître les bases de la numération, c'est le moment
d'apprendre : cela pourra certainement resservir :-)
Un journée où on n'a rien appris est une journée de perdue.
Le Sat, 10 Jan 2015 05:32:45 +0000, Christophe PEREZ a écrit :
C'est très gentil de m'expliquer la méthode, qui j'avoue humblement, ne fait pas partie de mes connaissances
Avec tout le respect que je vous dois : faire de l'informatique de bas niveau et ne pas connaître les bases de la numération, c'est le moment d'apprendre : cela pourra certainement resservir :-)
Un journée où on n'a rien appris est une journée de perdue.
Doug713705
Le 10-01-2015, Christophe PEREZ nous expliquait dans fr.comp.os.linux.configuration (<m8qdht$te3$) :
Le Fri, 09 Jan 2015 23:06:13 +0100, Olivier Miakinen a écrit :
Hahaha je te reconnais rien là toi.
Je n'ai pas de solution toute faite, mais voici comment je procèderais si je devais le faire.
C'est très gentil de m'expliquer la méthode, qui j'avoue humblement, ne fait pas partie de mes connaissances, mais 1) j'imagine bien qu'un outil ou même un script existe déjà sans que j'ai à réinventer la roue 2) tu m'envoies faire ça en bash toi ? C'est sympa :D
Bon, si jamais je ne trouve pas du tout fait, je serai bien obligé de me forcer à y passer et je serai bien content de retrouver tes explications, mais je croise encore un peu les doigts :)
def check_ip(ip): if re.match("^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$", ip) is not None: ip_bytes = ip.split(".") for byte in ip_bytes: if not -1 < int(byte) < 256: usage() return ip_bytes else: usage()
def to_binary(ip_bytes): str = "" for byte in ip_bytes: binary = "{0:b}".format(int(byte)) while len(binary) < 8: binary = "0" + binary str += binary return str
def get_mask(bin_ip1, bin_ip2): i = 0 mask = 0 for bit in bin_ip1: if bit == bin_ip2[i]: mask += 1 else: return mask i += 1
Ce n'est probablementpas très optimisé mais ça fonctionne.
-- C'est juste une fille un peu frittée Qui s'amuse avec ma santé Et qui me dégoupille les gonades Juste au moment où je prends mon fade. -- H.F. Thiéfaine, Groupie 89 turbo 6
Le 10-01-2015, Christophe PEREZ nous expliquait dans
fr.comp.os.linux.configuration
(<m8qdht$te3$2@serveur2.novazur.fr>) :
Le Fri, 09 Jan 2015 23:06:13 +0100, Olivier Miakinen a écrit :
Hahaha je te reconnais rien là toi.
Je n'ai pas de solution toute faite, mais voici comment je procèderais
si je devais le faire.
C'est très gentil de m'expliquer la méthode, qui j'avoue humblement, ne
fait pas partie de mes connaissances, mais
1) j'imagine bien qu'un outil ou même un script existe déjà sans que j'ai
à réinventer la roue
2) tu m'envoies faire ça en bash toi ? C'est sympa :D
Bon, si jamais je ne trouve pas du tout fait, je serai bien obligé de me
forcer à y passer et je serai bien content de retrouver tes explications,
mais je croise encore un peu les doigts :)
def check_ip(ip):
if re.match("^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$", ip) is not None:
ip_bytes = ip.split(".")
for byte in ip_bytes:
if not -1 < int(byte) < 256:
usage()
return ip_bytes
else:
usage()
def to_binary(ip_bytes):
str = ""
for byte in ip_bytes:
binary = "{0:b}".format(int(byte))
while len(binary) < 8:
binary = "0" + binary
str += binary
return str
def get_mask(bin_ip1, bin_ip2):
i = 0
mask = 0
for bit in bin_ip1:
if bit == bin_ip2[i]:
mask += 1
else:
return mask
i += 1
Ce n'est probablementpas très optimisé mais ça fonctionne.
--
C'est juste une fille un peu frittée
Qui s'amuse avec ma santé
Et qui me dégoupille les gonades
Juste au moment où je prends mon fade.
-- H.F. Thiéfaine, Groupie 89 turbo 6
Le 10-01-2015, Christophe PEREZ nous expliquait dans fr.comp.os.linux.configuration (<m8qdht$te3$) :
Le Fri, 09 Jan 2015 23:06:13 +0100, Olivier Miakinen a écrit :
Hahaha je te reconnais rien là toi.
Je n'ai pas de solution toute faite, mais voici comment je procèderais si je devais le faire.
C'est très gentil de m'expliquer la méthode, qui j'avoue humblement, ne fait pas partie de mes connaissances, mais 1) j'imagine bien qu'un outil ou même un script existe déjà sans que j'ai à réinventer la roue 2) tu m'envoies faire ça en bash toi ? C'est sympa :D
Bon, si jamais je ne trouve pas du tout fait, je serai bien obligé de me forcer à y passer et je serai bien content de retrouver tes explications, mais je croise encore un peu les doigts :)
def check_ip(ip): if re.match("^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$", ip) is not None: ip_bytes = ip.split(".") for byte in ip_bytes: if not -1 < int(byte) < 256: usage() return ip_bytes else: usage()
def to_binary(ip_bytes): str = "" for byte in ip_bytes: binary = "{0:b}".format(int(byte)) while len(binary) < 8: binary = "0" + binary str += binary return str
def get_mask(bin_ip1, bin_ip2): i = 0 mask = 0 for bit in bin_ip1: if bit == bin_ip2[i]: mask += 1 else: return mask i += 1
Ce n'est probablementpas très optimisé mais ça fonctionne.
-- C'est juste une fille un peu frittée Qui s'amuse avec ma santé Et qui me dégoupille les gonades Juste au moment où je prends mon fade. -- H.F. Thiéfaine, Groupie 89 turbo 6
Christophe PEREZ
Le Sat, 10 Jan 2015 08:37:57 +0000, moi-meme a écrit :
Un journée où on n'a rien appris est une journée de perdue.
J'apprends plein de choses tous les jours, mais j'évite de me forcer à apprendre des choses qui ne m'intéressent pas plus que ça, parce que justement, il y a beaucoup trop de choses qu'il m'intéresse d'apprendre.
Le Sat, 10 Jan 2015 08:37:57 +0000, moi-meme a écrit :
Un journée où on n'a rien appris est une journée de perdue.
J'apprends plein de choses tous les jours, mais j'évite de me forcer à
apprendre des choses qui ne m'intéressent pas plus que ça, parce que
justement, il y a beaucoup trop de choses qu'il m'intéresse d'apprendre.
Le Sat, 10 Jan 2015 08:37:57 +0000, moi-meme a écrit :
Un journée où on n'a rien appris est une journée de perdue.
J'apprends plein de choses tous les jours, mais j'évite de me forcer à apprendre des choses qui ne m'intéressent pas plus que ça, parce que justement, il y a beaucoup trop de choses qu'il m'intéresse d'apprendre.
Christophe PEREZ
Le Sat, 10 Jan 2015 09:30:06 +0100, Erwan David a écrit :
La dernière version de ipcalc (0.41) le fait
Ah ben m$#!&$ alors ! J'ai passé un moment à tourner la doc pour trouver la bonne option, et n'y trouvant rien, j'ai pensé qu'il ne le faisait pas, et pourtant, ça me surprenait vachement. Merci d'avoir mis le doigt dessus.
Le Sat, 10 Jan 2015 09:30:06 +0100, Erwan David a écrit :
La dernière version de ipcalc (0.41) le fait
Ah ben m$#!&$ alors ! J'ai passé un moment à tourner la doc pour trouver
la bonne option, et n'y trouvant rien, j'ai pensé qu'il ne le faisait
pas, et pourtant, ça me surprenait vachement.
Merci d'avoir mis le doigt dessus.
Le Sat, 10 Jan 2015 09:30:06 +0100, Erwan David a écrit :
La dernière version de ipcalc (0.41) le fait
Ah ben m$#!&$ alors ! J'ai passé un moment à tourner la doc pour trouver la bonne option, et n'y trouvant rien, j'ai pensé qu'il ne le faisait pas, et pourtant, ça me surprenait vachement. Merci d'avoir mis le doigt dessus.
Christophe PEREZ
Le Sat, 10 Jan 2015 11:57:50 +0100, Doug713705 a écrit :
À peine 50 lignes de python:
Désolé que tu te sois donné tout ce mal pour rien, mais puisqu'Erwan me fait remarquer qu'ipcalc le fait...
Le Sat, 10 Jan 2015 11:57:50 +0100, Doug713705 a écrit :
À peine 50 lignes de python:
Désolé que tu te sois donné tout ce mal pour rien, mais puisqu'Erwan me
fait remarquer qu'ipcalc le fait...