Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: hex2ip
Forum PHP.pl > Forum > Przedszkole
legorek
Jak w temacie, problem banalny, ale nie wiem jak go ugryźć :/ Jak zamienic IP zapisane w systemie szesnastkowym na ip w formacie xxx.xxx.xxx.xxx ?

czyli jak zrobić z 531c16b9 => 83.28.22.185
dr_bonzo
Rozbijasz to na dwuznakowe stringi (substring()), kazdy konwertujesz hexdec()-em i laczysz z kropkami.
legorek
I tu niestety zonk :/ Dla adresu 83.28.22.5 nie zdziała. To ja tylko dodam jak konwertuje Ip na HEX:

  1. <?php
  2.  
  3. function ip2hex($ip)
  4. {
  5. $tab_ip = explode(&#092;".\", $ip);
  6. $tab_ip[0] = dechex((strlen($tab_ip[0]) == 1) ? '0'.$tab_ip[0] : $tab_ip[0]);
  7. $tab_ip[1] = dechex((strlen($tab_ip[1]) == 1) ? '0'.$tab_ip[1] : $tab_ip[1]);
  8. $tab_ip[2] = dechex((strlen($tab_ip[2]) == 1) ? '0'.$tab_ip[2] : $tab_ip[2]);
  9. $tab_ip[3] = dechex((strlen($tab_ip[3]) == 1) ? '0'.$tab_ip[3] : $tab_ip[3]);
  10. return $tab_ip[0].$tab_ip[1].$tab_ip[2].$tab_ip[3];
  11. }
  12.  
  13. ?>


Nie wiem czy ta funkcja jest dobra bo jeśli idzie o protokoły internetowe i wszystko co się z tym wiąże, to jestem cieniutki :/
dr_bonzo
  1. <?php
  2. function ip2hex( $sIp )
  3. {
  4. $aIp = explode( '.', $sIp );
  5.  
  6. foreach( $aIp as $x )
  7. {
  8. $temp = dechex( $x );
  9. $aNewIp[] = ( strlen( $temp ) === 1 ) ? '0' . $temp : $temp;
  10. }
  11.  
  12. return implode( '', $aNewIp );
  13. }
  14.  
  15. function hex2ip( $sIp )
  16. {
  17. for ( $i = 0; $i < 4; $i++ )
  18. {
  19. $x = substr( $sIp, $i * 2, 2 );
  20.  
  21. $aNewIp[] = hexdec( $x );
  22. }
  23.  
  24. return implode( '.', $aNewIp );
  25. }
  26.  
  27. print( ip2hex( '127.0.0.1' ) . '<br />' );
  28. print( hex2ip( ip2hex( '192.168.1.1' ) ) );
  29. ?>
legorek
Dzięki wielkie :-)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.