Comment effectuer une conversion de IPv6 à long et vice versa?Conversion IPv6 à long et long à IPv6
Jusqu'à présent, j'ai:
public static long IPToLong(String addr) {
String[] addrArray = addr.split("\\.");
long num = 0;
for (int i = 0; i < addrArray.length; i++) {
int power = 3 - i;
num += ((Integer.parseInt(addrArray[i], 16) % 256 * Math.pow(256, power)));
}
return num;
}
public static String longToIP(long ip) {
return ((ip >> 24) & 0xFF) + "."
+ ((ip >> 16) & 0xFF) + "."
+ ((ip >> 8) & 0xFF) + "."
+ (ip & 0xFF);
}
est-il une solution correcte ou je manqué quelque chose?
(Ce serait parfait si la solution a fonctionné pour les deux et ipv6 ipv4)
Ok, je le ferai. Qu'en est-il de la conversion? Est-ce que c'est bien fait? – Testeross
Il est assez facile de tester cela: exécuter longToIP (IPToLong ("122.122.122.124")) et vous obtiendrez "34.34.34.36" au lieu de l'original "122.122.122.124" ce qui signifie que quelque chose ne va pas. –
Vous avez raison. Avez-vous une idée de ce qui ne va pas? – Testeross