IP-Adressenkonverter

8

Es gibt eine IP-Adresse: 66.102.13.19, und von dieser Adresse, die diese Adresse erhalten hat

%Vor%

Aber wie? Und wie kann ich das mit Hilfe von bash machen? Zum Beispiel kann dieser Dienst es tun, aber ich verstehe den Algorithmus nicht.

    
KarlsD 26.05.2012, 16:54
quelle

6 Antworten

30
%Vor%

Übrigens stimmt die Nummer in Ihrer Frage nicht mit der IP-Adresse überein.

Um eine Dezimalstelle in eine IP umzuwandeln:

%Vor%

Um eine IP in eine Dezimalzahl umzuwandeln:

%Vor%

Demo:

%Vor%

Diese beiden Skripts basieren auf Features von Bash, die in einigen Bourne-abgeleiteten Shells nicht vorhanden sind. Hier sind AWK-Versionen zu verwenden:

%Vor%

und

%Vor%

Sie können auf die gleiche Weise wie die Bash-Skripte oben aufgerufen werden.

    
Dennis Williamson 26.05.2012 16:59
quelle
7

IP-Adresse - & gt; Nummer: echo 66.102.13.19 | tr . '\n' | awk '{s = s*256 + } END{print s}' Nummer - & gt; IP-Adresse: (export ip=1113984275; for i in {1..4}; do s='.'$((ip%256))$s && ((ip>>=8)); done; echo ${s:1})

    
Hongbo Liu 10.06.2014 08:16
quelle
3

meine Version für die Umwandlung von int in ip:

echo 3232235521| awk {'print rshift(and(, 0xFF000000), 24) "." rshift(and(, 0x00FF0000), 16) "." rshift(and(, 0x0000FF00), 8) "." and(, 0x000000FF) '}

    
vik 07.10.2014 17:12
quelle
3

Hier ist mein Beispiel:

%Vor%

ip2d.sh:

%Vor%

d2ip.sh:

%Vor%     
evuraan 07.07.2015 23:51
quelle
2

Binärverschiebung ist immer schneller als Multiplikation oder Division.
Eine binäre AND ist schneller als mod.

%Vor%

Hinweis: Dieses System wird mit Werten wie 0008 fehlschlagen.
Bash denkt, es ist eine Oktalzahl.

Um das zu lösen, muss jeder Wert wie folgt bereinigt werden:

%Vor%

Für (sehr) alte Shells: bash seit 2.04 oder Bindestrich oder irgendeine (sinnvolle) Shell:

%Vor%     
sorontar 09.12.2016 17:56
quelle
1

Ich denke, es gibt eine einfachere Lösung, die auch eine beliebige Anzahl von Oktetten ohne Referenzen auf feste Offsets usw. behandelt.

%Vor%

Ausgabe: 1113984275

    
Brian Chrisman 11.11.2016 23:18
quelle

Tags und Links