Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> poprawność ip, nie zwykła składniowa
dopy
post
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 25.07.2005

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


Witam,

Jakie są jeszcze sposoby na kontrole poprawności wprowadzonego w formularzu IP ? Chciałbym jak najdokładniej kontrolować czy aby napewno jest poprawne. Aktualne sprawdzam jego składnie, czy liczby nie przekraczają tam 255 i czy odpowiedni uklad... ale np. da sie to obejsc podajac "100.001.002.123" co jest jak najbardziej blednym numerem IP. Czy ma ktos jakies pomysly ?

Pozdrawiam i z gory dziekuje za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Yacho
post
Post #2





Grupa: Zarejestrowani
Postów: 148
Pomógł: 0
Dołączył: 16.06.2003

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


czyli 100.1.1.1 jest nieprawidłowym adresem ? skad ta nowina ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
dopy
post
Post #3





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 25.07.2005

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


100.1.1.1 jest, ale 100.001.001.001 nie (to juz kwestia systemu php, bo moze i mniejsza jest roznica w innych miejscach, gdzie 001 automatycznie zamieni sie w 1 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) )
Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


ip2long()
Cytat
The function ip2long() generates an IPv4 Internet network address from its Internet standard format (dotted string) representation. If ip_address is invalid then -1 is returned. Note that -1 does not evaluate as FALSE in php.


  1. <?php
  2.  
  3. $strIP = '256.100.100.100';
  4.  
  5. if( ip2long( $strIP ) == -)
  6. {
  7. echo 'Nie da się skonwertować, więc jest niepoprawny :)';
  8. }
  9. else
  10. {
  11. echo 'OK';
  12. }
  13.  
  14. ?>
Go to the top of the page
+Quote Post
dopy
post
Post #5





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 25.07.2005

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


Niestety, kod ten takze akceptuje ip typu "127.001.1.2" (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
ave
post
Post #6





Grupa: Zarejestrowani
Postów: 117
Pomógł: 2
Dołączył: 29.01.2004
Skąd: Rz-ów

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


  1. <?php
  2. $hosts = gethostbynamel('100.001.001.001');
  3. print_r($hosts);
  4. ?>


(IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


dopy: stosujesz ip2long potem longtoip i jesli dostaniesz to samo co na samym poczatlu to jest ok.
Go to the top of the page
+Quote Post
dopy
post
Post #8





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 25.07.2005

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


  1. <?php
  2. function clr_ip($ip)
  3. {
  4. $ip=ip2long($ip);
  5. $ip=long2ip($ip);
  6. return $ip;
  7. }
  8. ?>


dr_bonzo: Faktycznie działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dziękuje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) A i jeszcze ma swoją zalete - w przypadku podania zupełnie błędnego IP, nawet typu 1.2.3.4.5.6.7.8 to po przejsciu przez ta funkcje zwroci ip 255.255.255.255 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował dopy 27.05.2006, 11:50:51
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


dopy No i dziala to dobrze, ale zapomniales ze
Cytat
If ip_address is invalid then -1 is returned.

-1 odpowiada ok. 4 mld (1111....1111 binarnie) co odpowiada 255...255
Go to the top of the page
+Quote Post

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: 24.08.2025 - 02:37