Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] zakres ip, Jak sprawdzić czy IP użytkownika mieści się w określonym zakresie IP?
rimk
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 2.07.2007

Ostrzeżenie: (0%)
-----


No, właśnie.
Jak sprawdzić czy IP użytkownika mieści się w określonym zakresie numerów IP?
Jak zrobić to najszybciej?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
camillos
post
Post #2





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 26.06.2007

Ostrzeżenie: (0%)
-----


Jeśli chcesz to zrobić bardziej elegancko i do wykorzystania np z mysql to polecam przekształcić numer ip na konkretną liczbę, a robi się to tak:
  1. <?php
  2. $r=explode('.',$ip);
  3. $ipnum = 16777216*$r[0] + 65536*$r[1] + 256*$r[2] + $r[3];
  4. ?>

jeśli masz inetnum, to rozbijasz oba numery początkowy i końcowy, przeliczasz na cyfry i masz już prościznę, aby sprawdzić czy twój (przeliczony) nr ip jest mniejszy od końcowego i większy od poczatkowego.
Oczywiście, gdy będziesz np konstruował tabelę w mysql to polecam typ kolumn INT (UNSIGNED) - ten atrybut ważny, bo wiele numerów nie zmieściłoby się w zwykłym INT signed.
w druga stronę cyfrę na ip zamienia poniższa funkcja
  1. <?php
  2. FUNCTION renum_ipnum($ipnum1)
  3. {
  4. $ip0= (integer) ($ipnum1/16777216);
  5. $ip1= (integer) (($ipnum1-($ip0*16777216))/65536);
  6. $ip2= (integer) (($ipnum1-(($ip0*16777216)+($ip1*65536)))/256);
  7. $ip3= $ipnum1 -(($ip0*16777216)+($ip1*65536)+($ip2*256));
  8. $ip= "$ip0.$ip1.$ip2.$ip3";
  9. return $ip;
  10. }
  11. ?>


Ten post edytował camillos 23.11.2007, 12:29:31
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 15:58