Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pula IP
Forum PHP.pl > Forum > Przedszkole
cube
Jak najefektywniej sprawdzić czy podany adres IP należy do jakiejś puli ?
Np czy IP
Kod
10.35.100.150

należy do puli
Kod
10.20.30.40 - 11.10.20.30
dr_bonzo
Zamienic IP na integera i porownac:

10.15.100.15 = 10 x 256^3 + 15 x 256^2 + 100 x 256 ^1 + 15 x 256^0 = ..... (! jak pamietam php przekkonwertuje ci liczbe do floata -- ale bedzie ok)
i tak samo z pozostalymi
i potem sprawdzasz czy 10.35.100.150 jest miedzy 10.20.30.40 - 11.10.20.30 (w postaci integerow)
----
znalazlem: IP manipulator, wymaga php5:

  1. <?php
  2.  
  3. /**
  4.  * Converts IP address (aaa.bbb.ccc.ddd) to decimal number
  5.  * (float type, because address can be > 2E9 -- that means negative integer)
  6.  *
  7.  * @param string $sIp
  8.  * @return float Ip address
  9.  */
  10. static public function ipToDec( $sIp )
  11. {
  12. $aIp = explode( '.', $sIp );
  13. $fIp = 0;
  14.  
  15. for ( $i = 0; $i < 4; $i++ )
  16. {
  17. $fIp = $fIp * 256 + intval( $aIp[ $i ] );
  18. }
  19.  
  20. return floatval( $fIp );
  21. }
  22.  
  23. ?>
cube
Cytat(dr_bonzo @ 2005-05-05 19:51:56)
Zamienic IP na integera i porownac:

Dzięki.
Też na to wpadłem, ale wydało mi się jakieś mało efektywne.

PS. Temat pozostaje otwarty
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.