Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> poprawność ip, nie zwykła składniowa
dopy
post 27.05.2006, 00:34:00
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.


--------------------
Błyśnij, nim zgaśniesz...
Go to the top of the page
+Quote Post
Yacho
post 27.05.2006, 00:44:40
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 ? smile.gif


--------------------
-=Yacho=-

nospor -> trzymaj sie i nie dajcie sie !
Go to the top of the page
+Quote Post
dopy
post 27.05.2006, 00:47:21
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 winksmiley.jpg )


--------------------
Błyśnij, nim zgaśniesz...
Go to the top of the page
+Quote Post
mike
post 27.05.2006, 00:47:55
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 27.05.2006, 01:55:09
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" sad.gif


--------------------
Błyśnij, nim zgaśniesz...
Go to the top of the page
+Quote Post
ave
post 27.05.2006, 02:00:22
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. ?>


snitch.gif
Go to the top of the page
+Quote Post
dr_bonzo
post 27.05.2006, 10:10:26
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.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
dopy
post 27.05.2006, 11:48:41
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 smile.gif Dziękuje 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 smile.gif

Ten post edytował dopy 27.05.2006, 11:50:51


--------------------
Błyśnij, nim zgaśniesz...
Go to the top of the page
+Quote Post
dr_bonzo
post 27.05.2006, 12:04:08
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


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 10.07.2025 - 10:01