Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kodowanie i odkodowywanie adresów IP
Michael2318
post
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Witajcie!

Chciałbym u siebie w bazie kodować jakoś adresy IP, a przy tym mieć je krócej zapisane. Znalazłem w phpbb odpowiednie funkcje, które kodują adresy IP na 8 znaków, a potem spokojnie to odkodowywują.

  1. function encode_ip($dotquad_ip)
  2. {
  3. $ip_sep = explode('.', $dotquad_ip);
  4. return sprintf('%02x%02x%02x%02x', $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]);
  5. }
  6.  
  7. function decode_ip($int_ip)
  8. {
  9. $hexipbang = explode('.', chunk_split($int_ip, 2, '.'));
  10. return hexdec($hexipbang[0]). '.' . hexdec($hexipbang[1]) . '.' . hexdec($hexipbang[2]) . '.' . hexdec($hexipbang[3]);
  11. }


Mój problem polega jednak na tym, że ta funkcja przepuszcza jedynie liczby oraz kropkę (.), a ja potrzebuję dorzucić tam jeszcze gwiazdkę (*), co oznaczać będzie losowy ciąg znaków, czyli jeśli zbanuję taki adres IP:
81.187.5* to każdy adres, posiadający taki przedrostek z automatu będzie banowany.
Czy możecie mi coś doradzić w tej kwestii? (IMG:style_emoticons/default/smile.gif) Może jest jakaś inna funkcja, która spełni moje oczekiwania?

Pozdrawiam!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Michael2318
post
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


no tak, ale co ze wspomnianą gwiazdką? Taki zapis też przyjmie?
Go to the top of the page
+Quote Post
skowron-line
post
Post #3





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Cytat(Michael2318 @ 19.02.2013, 09:26:40 ) *
no tak, ale co ze wspomnianą gwiazdką? Taki zapis też przyjmie?

(mysql) INET_ATON == (php) ip2long
  1. $a = '127.0.0.*'; // 127.0.0.

niestety to dają puste wyniki, więc kicha.
Możesz sobie dorzucić w bazie drugą kolumne i wpisywać zakresy od - do
np
Kod
OD | DO
127.0.0.1 | 127.0.0.1
210.0.0.1 | 210.0.0.100

i sprawdzać betweenem w zapytaniu.

Ten post edytował skowron-line 19.02.2013, 09:51:05
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: 14.10.2025 - 14:26