Re: netfunc.bash

felix via gull <gull-04vmY7CpswVinyhjFObuvR+/[email protected]>
Newsgroups gmane.org.user-groups.gull.general
Message-ID <[email protected]>
Quelques corrections et mises à jour:

Le Tue, Apr 05, 2022 at 08:06:50AM +0200, felix via gull a écrit :
> 
>   https://f-hauri.ch/vrac/netfunc.bash.txt
> 
> Ce fichier est un fichier bash, à ``sourcer'':
> 
>   . netfunc.bash
>   Bash source file for IPV4 computing - netfunc v0.13
Nlle v0.15...

>    - int2ip       integer to IPv4
	int2ip 3232235521 3232235790 -> affiche deux lignes: 192.168.0.1 192.168.1.14
	int2ip -v chaine 3232235521 3232235790 ->
			 stoque 192.168.0.1 et 192.168.1.14 dans ${chaine[@]}

>    - int2rev      3 most significant bytes, for reverse DNS X.X.X.in-addr.arpa
	int2rev 3232235790 -> 1.168.192

>    - checkIsIp    throw an error if not valid IPv4
	checkIsIp "$arg" || echo "Error '$arg' is not an ipv4"
 
>    - ip2int       IPv4 to integer 32 bits value.
	ip2int 192.168.1.1 -> affiche 3232235777
	ip2int -v variable 192.168.1.1 -> stoque 3232235777 dans $variable

>    - mask2int     from mask len to integer value of IPv4 mask
	mask2int 24 -> affiche 4294967040
	mask2int -v variable -> stoque 4294967040 dans $variable
			int2ip $variable -> affichera 255.255.255.0

>    - int2mlen     compute mask len from integer value of IPv4 mask
	ip2int -v variable 255.255.255.128 ; int2mlen $variable -> affiche 25
	ip2int -v variable 255.255.255.128 ; int2mlen -v variable $variable -> stoque 25...

>    - be2int       Big Endian to INTeger, ( for reading proc/net/route )
	be2int -v variable 0001A8C0;int2ip $variable -> affiche 192.168.1.0
	be2int -v variable 0001A8C0;int2ip -v variable $variable -> stoque 192.168.1.0...

>    - int2uu       1st run generate int2uu() to render bash's 64# from integer
	int2uu 3232235521 -> affiche 30G001
	echo $((64#30G001)) -> affiche 3232235521
	int2uu -v variable 3232235521 ; int2ip $((64#30G001)) -> affiche 192.168.0.1

>    - int2bin      1st run generate int2bin to render 32bits, mark mask with a dot.
	int2bin 3232235521 24 -> affiche 11000000 10101000 00000000. 00000001
			avec un `.'  au 24ème bit.

>    - rangeIp      Generate array of integer representation of IPv4 from argument
	rangeIp 192.168.1.100/28  -> affiche 3232235872 3232235873 ... 3232235887
	rangeIp 192.168.1.95-192.168.1.110 -> affiche 3232235871 3232235872 ... 3232235886

>    - multiping    One ping on many target. Use integer representation of IPv4
	rangeIp -v variable 192.168.1.0/24 ; multiping ${variable[@]} ->
		192.168.1.1          1.09
		192.168.1.33        0.654
		192.168.1.34        0.029

>    - ip2hnam      Fork to `host` and store in _ipResInv, if not already stored.
	ip2hnam 192.168.1.1 -> peut afficher un truc du genre: internetbox
	ip2hnam -v variable 192.168.1.1 -> stoque internetbox dans variable.

>    - hname2ip     Fork to `host` and store in _ipResolv, if not already stored.
	hname2ip internetbox -> affichera (alors) 192.168.1.1
	hname2ip -v variable internetbox -> stoque 192.168.1.1 dans variable

>    - isup         Monitor ping many targets simultaneously (hit any key to quit)
	isup 192.168.1.{1,33,34} -> Affiche les temps de réponse de plusieurs hosts
			sur une ligne. Appuyer sur une touche pour stopper.
	     Elaps Cnt  int..ox   tv-box  hp3..76
	    2.0423   3     2.15    0.286     4.04

>    - mping        quick ping scan IPv4 ranges and resolv host name of waked hosts
	mping 192.168.1.0/24 -> liste des tous les hosts répondant sur 192.168.1.0/24
	mping -> sans arguments effectue un ping sur tous les réseaux locaux.
	mping -v variable -> stoque la liste des hosts répondants dans $variable

>    - ipcalc       compute and render network submited as [ip mask] or [ip/masklen]
	ipcalc 192.168.1.33/24 192.168.1.1
	┏━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┯━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━┓
	┃ Network base│192.168.1.0    │         #0│11000000 10101000 00000001│ 00000000┃
	┃ Mask        │255.255.255.0  │/24        │11111111 11111111 11111111│ 00000000┃
	┃ Broadcast   │192.168.1.255  │       #255│11000000 10101000 00000001│ 11111111┃
	┃ Host/net    │254            │Class C    │                          │         ┃
	┠─────────────┼───────────────┼───────────┼──────────────────────────┼─────────┨
	┃ internetbox │192.168.1.1    │         #1│11000000 10101000 00000001│ 00000001┃
	┃▸Host        │192.168.1.33   │        #33│11000000 10101000 00000001│ 00100001┃
	┃ Last host   │192.168.1.254  │       #254│11000000 10101000 00000001│ 11111110┃
	┗━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┷━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━┛
	ipcalc -> sans argument effectue la liste de toutes les IPv4 configurées localement

>    - getLocalNet  Get local config from /proc/net/ pseudo files
	getLocalNet -> affichera interface, ip locale, mask et routeur par défaut, soit
			un truc du genre: eth0:192.168.1.33/24:192.168.1.1

>    - commonNet    compute smallest common network for many IP/net
	commonNet 10.167.233.15 10.163.21.1 -> calcule le plus petit commun réseau:
	┏━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┯━━━━━━━━━━━┯━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━┓
	┃ Network base│10.160.0.0     │         #0│00001010 10100│000 00000000 00000000┃
	┃ Mask        │255.248.0.0    │/13        │11111111 11111│000 00000000 00000000┃
	┃ Broadcast   │10.167.255.255 │    #524287│00001010 10100│111 11111111 11111111┃
	┃ Host/net    │524286         │Class A    │              │                     ┃
	┠─────────────┼───────────────┼───────────┼──────────────┼─────────────────────┨
	┃ First host  │10.160.0.1     │         #1│00001010 10100│000 00000000 00000001┃
	┃▸IP min      │10.163.21.1    │    #201985│00001010 10100│011 00010101 00000001┃
	┃ IP max      │10.167.233.15  │    #518415│00001010 10100│111 11101001 00001111┃
	┃ Last host   │10.167.255.254 │    #524286│00001010 10100│111 11111111 11111110┃
	┗━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┷━━━━━━━━━━━┷━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━┛

>    - reCIDR       Compute shortened list of CIDR for argument or STDIN
	reCIDR 192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4
	192.168.1.1/32
	192.168.1.2/31
	192.168.1.4/32

	reCIDR 192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.0
	192.168.1.0/30

	reCIDR 192.168.1.1/25 192.168.1.200/25
	192.168.1.0/24

>    - netfuncFList List functions (this.) [-v]

-- 
 Félix Hauri  -  <[email protected]>  -  http://www.f-hauri.ch
_______________________________________________
gull mailing list
[email protected]
https://forum.linux-gull.ch/mailman/listinfo/gull
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.