Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobranie oktetów z adresu
Forum PHP.pl > Forum > Przedszkole
knefelio
Mam problem z pobraniem oktetów z adresu IP. O ile nie ma problemu z pierwszym oktetem i ostatnim:

  1. $ip = '144.32.142.90';
  2. preg_match('/^([0-9]+)/', $ip, $oktet1);
  3. preg_match('/([0-9]+)$/', $ip, $oktet4);


to nie wiem co przyjąć za punkt zaczepienia przy pozostałych?
toffiak
  1. $tablicaOktetow=preg_split('/\./',$ip)
gothye
explode
basstone
  1. $ip = "144.32.142.90";
  2. $dane = explode(".", $ip);
  3.  
  4. echo $dane[0]; // 144
  5. echo $dane[1]; // 32
  6. echo $dane[2]; // 142
  7. echo $dane[3]; // 90
wNogachSpisz
  1. list ( $oct1, $oct2, $oct3, $oct4 ) = explode( '.', '144.32.142.90', 4 );

A tak w ogóle to z adresami IP powinno się pracować po sprowadzeniu ich do unsigned INT(4).
Crozin
@wNogachSpisz: Nie, nie powinno się pracować na typie INTEGER.

wNogachSpisz
Cytat(Crozin @ 15.02.2012, 17:56:10 ) *

A to niby dlaczego? Wysłów się.
Crozin
Cytat
A to niby dlaczego? Wysłów się.
Porządna aplikacja powinna wspierać IPv6, a ponieważ taki adres zajmuje 128 bitów nie da się go traktować jako liczby - w kontekście typów prymitywnych. PHP niestety nie oferuje żadnego sensownego obiektu do reprezentacji takiego tworu w swojej standardowej bibliotece (dla IPv4 zresztą też nie), tak więc pozostaje:
- poszukanie gotowego rozwiązania - biblioteki,
- traktowanie adresu jako tekst,
- stworzenie własnego rozwiązania.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.