pytanie: Kiedy przekonwertować 192.168.115.67 adresów IP do numeru, to się robi tak:
192 * 256 + 168 * 256 +115 * 256 + 67 * 256 = 3232265027
lub jak poniżej:
192 * 256 + 168 * 256 + 115 * 256 + 67 * 256 = 1131653312
Znajduję oba warianty w Internecie, i szczerze mówiąc, nie ma to znaczenia, dopóki wykonuję wszystkie wewnętrzne porównanie zakresu IP przy użyciu tego samego wariantu procesu konwersji. Ale chcę obliczyć IP V6 z adresu IPv4 i wydaje się, że oba warianty są w Internecie ... powodujące różne adresy IPv6 i tylko jedno może być poprawne ...
Używam 1131653312 wariant, ponieważ 1131653312 jest wariantem, który widziałem .NET daje mi, ale 3232265027 jest wariantem, którego użyłem, gdy zrobiłem to w C++, i że jest to również wariant, który znajduję w Internecie dla konwersji IPv4 na IPv6, i który użyłem wcześniej Widziałem, że .NET używa wariantu 1131653312 ...Konwersja adresu IP na numer:
Odpowiedz
Sposób powodując 3232265027
muszą być prawidłowo, jako pierwszy numer znajduje się w najwyższych bitów zgodności części IPv4 IPv6:
0000: 0000: 0000: 0000: 0000: FFFF: AABB: CCDD
gdzie
AA = 192
BB = 168
CC = 0
DD = 1
etc.
http://wikipedia.org/wiki/IPv6
Ponadto, nie może mieć 256
w adresie IP. Wartości wynoszą 0 - 255 każda.
Numery są wysyłane w kolejności wielko-endianowej przez przewód, który jest taki sam jak sposób ich zapisu (192 jest najbardziej znaczącym bajtem). Tak więc pierwsza liczba jest "poprawna". Drugi wariant polega na tym, że te same bajty będą interpretowane na architekturze małego endianu, stąd zachowanie .Net.
Powiedziawszy to wszystko, nie jestem do końca pewien, jakie jest to pytanie, więc mogę tylko mieć nadzieję, że ta ekspozycja stanowi pewnego rodzaju odpowiedź.
to zdecydowanie pierwsza. możesz pingować i zobaczyć, jak narzędzie ping konwertuje je do notacji a.b.c.d. jeśli zamierzasz wykonać tę konwersję, polecam wyrażenie: (a << 24) | (b << 16) | (c << 8) | d
dlaczego downvoting? – Andrey
Nie można tak naprawdę powiedzieć; zależy to od endianiczności jego platformy. OK, cóż, przypuszczam, że możesz, ponieważ .NET nie jest dokładnie przeniesiony na wiele różnych platform. Ale w zasadzie nie można tego tak naprawdę powiedzieć. –
@ T.E.D. jako liczba będzie wyglądać jak 3232265027. Drugie pytanie dotyczy sposobu, w jaki jest ono przechowywane w pamięci, a ten punkt w ogóle nie wspominałem. – Andrey
Różnica polega na endianness. Przechowywany jest on w postaci liczby całkowitej, ale różne procesory mają różne kolejność bajtów dla ich liczb całkowitych (najpierw duży lub mały koniec). Jednak liczba ta musi wyjść poza linię, więc adres IP ma określoną kolejność potrzebną do przesłania bajtów. Ta kolejność wygląda inaczej w przypadku maszyn bigendowskich i littleendian.
Nie wiem zbyt wiele o .net cross różnych sprzętu, jednak nie jest .net suposed do abstrakcyjnego przesunięcia bajt dla liczb całkowitych? –
- 1. Jak znaleźć Numer portu adresu IP?
- 2. Konwersja na numer NSNumber
- 3. Znajdowanie adresu IP użytkownika
- 4. przycinanie adresu IP oktet
- 5. Uzyskiwanie lokalnego adresu IP
- 6. Dławienie żądań według adresu IP na Apache?
- 7. Konwersja liczby całkowitej na adres IP
- 8. Konwersja ciąg na numer w JavaScript/jQuery
- 9. Konwersja listu na numer w JavaScript
- 10. Konwersja daty pandy na numer tygodnia
- 11. Przekierowywanie adresu IP w Javie
- 12. Wyszukiwanie adresu IP węzła Jenkinsa
- 13. Rozpoznawanie adresu IP nazwy hosta
- 14. Konwersja adresu URL blobu na zwykły URL
- 15. Składnia dla rezerwacji adresu URL netsh dla dowolnego adresu IP
- 16. Algorytm odwzorowania IP na ASN
- 17. śledzenie konkretnego adresu IP i portu
- 18. Szyny - Blokuj wszystkie oprócz określonego adresu IP
- 19. Przechowywanie adresu IP klienta w Firebase
- 20. libvirt: pobranie adresu IP z gościa
- 21. Pobierz uczelnię/uniwersytet z adresu IP
- 22. Konwertuj ciąg adresu IP na binarny w języku Python
- 23. Jak zapobiec wystawianiu adresu IP pochodzenia na Cloudflare?
- 24. Czy mogę zablokować lub ograniczyć kraj na podstawie adresu IP?
- 25. Skuteczny sposób na uzyskanie adresu IP w skryptach powłoki
- 26. Dostęp do usługi Google Storage na podstawie adresu IP
- 27. Centrum Google Map Na podstawie geokodowanego adresu IP
- 28. Jak uzyskać nazwę hosta na podstawie adresu IP?
- 29. Google API dla lokalizacji, na podstawie użytkownika adresu IP
Pytanie brzmi, jak wygląda (poprawny) IP v6 dla danego IP v4. –
Quandary, popraw odpowiedź, aby było jasne. –