Nasıl IPv6'dan uzun ve tam tersi dönüştürme yapmalıyım?Dönüştürme IPv6, uzun ve uzun IPv6 için
Şimdiye kadar var:
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);
}
doğru çözüm mü yoksa birşey kaçırdım mı?
Tamam IPv4 hem de IPv6 ile çalışır java.net.InetAddress
kullanabilirsiniz, bunu yapacağız. Dönüşümden ne haber? Bu doğru mu? – Testeross
Bunu test etmek oldukça kolay: longToIP (IPToLong ("122.122.122.124")) komutunu çalıştırın ve bir şey doğru olmadığı anlamına gelen "122.122.122.124" yerine "34.34.34.36" değerini alacaksınız. –
Haklısınız. Neyin yanlış olduğu hakkında bir fikrin var mı? – Testeross