Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] poprawne IP
d3f3nd3r
post
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 6
Dołączył: 9.08.2008

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


Witam

chcę zrobić banowanie przyczym mam formularz gdzie recznie wpisuję adres IP i chodzi mi aby byly przyjmowane tylko poprawne adresy ip.

W sieci znalazłem cos takiego:

  1. <?php
  2. if (!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$", $email))
  3. ?>


wstawiłem sobie to w jedno miejsce i maila sprawdza poprawnie. Poprzerabiałem to troszkę ale nie do końca to sprawdzanie IP jest poprawne.

Pomoże ktoś ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
barthpl
post
Post #2





Grupa: Zarejestrowani
Postów: 142
Pomógł: 35
Dołączył: 5.12.2006
Skąd: Wrocław

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


Podobny problem rozwiązywaliśmy tutaj. Do sprawdzania czy jest to poprawne powinna wystarczyć zmodyfikowana funkcja z tamtego tematu.
  1. <?php
  2. function isIP( $ip )
  3. { 
  4. $pattern = "/^([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})$/";
  5.  
  6. if( !preg_match( $pattern, trim($ip), $ip ) )
  7. return false;
  8.  
  9. foreach( $ip as $key => $val )
  10. $ip[$key] = intval($val);
  11. if( ($ip[1] >= 0 && $ip[1] < 256) && ($ip[2] >= 0 && $ip[2] < 256) && ($ip[3] >= 0 && $ip[3] < 256) && ($ip[4] >= 0 && $ip[4] < 256) )
  12. return true;
  13. return false;
  14. }
  15. ?>

i przykład
  1. <?php
  2. $ip[] = '0.0.0.0';
  3. $ip[] = '255.255.255.255';
  4. $ip[] = '999.999.999.999';
  5. $ip[] = '1.1.1.1';
  6. $ip[] = '2.2';
  7. $ip[] = '192,165.1';
  8. $ip[] = '234.10.5';
  9. $ip[] = '12.34.56.12';
  10.  
  11.  
  12. foreach( $ip as $ipItem )
  13. if( isIP($ipItem) )
  14. echo "$ipItem\n";
  15. ?>

a jego wynik to:

0.0.0.0
255.255.255.255
1.1.1.1
12.34.56.12

Choć ja wcale nie jestem taki pewien czy 0.0.0.0 to faktycznie poprawny adres IP.

edit --> Poprawiłem błąd jaki miałem w kodzie. Dodałem warunek w linii 6.

Ten post edytował barthpl 27.08.2008, 18:10:38
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: 17.10.2025 - 20:22