Portál AbcLinuxu, 13. května 2025 22:16
příklad: Mam eth0 nastavené na ip adresu 10.10.10.24 masku 255.255.255.128 Z toho bych rád zjistil toto: adresa - 10.10.10.24 síť - 10.10.10.0/25 maska - 255.255.255.128Dělám to docela složitým skriptem, nejde to nějak jednodušeji?
Řešení dotazu:
#!/bin/bash DEV='eth0' IP_M=`ip -o addr show dev $DEV | awk '$3 ~ /inet/ {print $4}'` IP=`echo "$IP_M" | awk -F/ 'NR == 1 {print $1}'` MASK=`echo "$IP_M" | awk -F/ 'NR == 1 {print $2}'` if let $(( (32-${MASK}) > 0)) then MASK4=$(( (255 << (32-${MASK})) & 255)) else MASK4=255 fi if let $(( (24-${MASK}) > 0)) then MASK3=$(( (255 << (24-${MASK})) & 255)) else MASK3=255 fi if let $(( (16-${MASK}) > 0)) then MASK2=$(( (255 << (16-${MASK})) & 255)) else MASK2=255 fi if let $(( (8-${MASK}) > 0)) then MASK1=$(( (255 << (8-${MASK})) & 255)) else MASK1=255 fi IP1=`echo "$IP" | awk -F. '{print $1}'` IP2=`echo "$IP" | awk -F. '{print $2}'` IP3=`echo "$IP" | awk -F. '{print $3}'` IP4=`echo "$IP" | awk -F. '{print $4}'` echo "ip: $IP" echo "síť: $(($IP1 & $MASK1)).$(($IP2 & $MASK2)).$(($IP3 & $MASK3)).$(($IP4 & $MASK4))" echo "maska: $MASK1.$MASK2.$MASK3.$MASK4"
#!/usr/bin/env python import socket hostname = socket.gethostname() ip = socket.gethostbyname( socket.gethostname() ) print 'Hostname:', hostname print 'IP adresa:', ip
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.