Vraag Bash-opdracht om IP-adressen in hun "omgekeerde" vorm om te zetten?


Wanneer ik nslookup uitvoert op een IP (dit zijn allemaal voorbeelden)

nslookup 192.168.1.123

Huidige uitgang:

411.311.211.111

Gewenste output:

111.211.311.411

Ik heb een script dat werkt, alleen om te zien of er een efficiëntere manier is of een ingebouwde nslookup-opdracht.

Bedankt


2
2017-12-05 19:05


oorsprong


Bekijk de antwoorden op deze vergelijkbare vraag over U & L Hoe lees ik een IP-adres achteruit? - steeldriver
Om te zien of een andere manier efficiënter is, zou het helpen om je huidige script te zien. - Jacob Vlijm


antwoorden:


echo 411.311.211.111 | awk -F. '{print $4"."$3"." $2"."$1}'`

Output:

111.211.311.411

of

echo 411.311.211.111 | awk -F. '{OFS="."; print $4,$3,$2,$1}'

3
2017-12-05 20:47





Hier is een native functie. Noem het zo reverseip 12.34.56.78 om het te laten afdrukken 78.56.34.12. Noem het zo reversed=$(reverseip 12.34.56.78) om de uitvoer in een variabele te vangen.

reverseip () {
    local IFS
    IFS=.
    set -- $1
    echo $4.$3.$2.$1
}

1
2017-12-10 08:43





Gebruik makend van sed:

sed -r 's/([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})/\4.\3.\2.\1/'

Match IP-adres en print van laatste naar eerste (reverse)


0
2017-12-10 09:14



Een beetje onpraktisch om naar te kijken, maar werkt niettemin, bedankt! - Roboman1723