Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Szukam pomysłu na rozwiązanie problemu z generowanie MAC
Forum PHP.pl > Forum > Przedszkole
HaPe
Witam,

Sklejam sobie niewielki panel webowy, mający na celu ułatwienie mi zarządzanie niewielką siecią. Wiele urządzeń pewnej firmy, które stosuję ma na obudowie podany pierwszy i ostatni adres MAC.
Jednak nie wiem za bardzo jak zabrać się za funkcję, która po podaniu I ostatniego MAC z obudowy zwróci mi pierwszy, wszystkie pośrednie i ostatni.
Dla przykładu podam:
  1. 0F:69:6D:4F:B9:03
  2. 0F:69:6D:4F:B9:04
  3. 0F:69:6D:4F:B9:05
  4. 0F:69:6D:4F:B9:05
  5. 0F:69:6D:4F:B9:06
  6. 0F:69:6D:4F:B9:07
  7. 0F:69:6D:4F:B9:08
  8. 0F:69:6D:4F:B9:09
  9. 0F:69:6D:4F:B9:0A
  10. 0F:69:6D:4F:B9:0B
  11. 0F:69:6D:4F:B9:0C


Jednak na obudowie urządzenia jest podany tylko adres mac 0F:69:6D:4F:B9:03 oraz 0F:69:6D:4F:B9:0C.
Będę wdzięczny za poradę.
Pozdrawiam.
pmir13
Jeśli zmienia się tylko ostatnia część to wystarczy:
  1. $mac1 = '0F:69:6D:4F:B9:03';
  2. $mac2 = '0F:69:6D:4F:B9:1C';
  3.  
  4. $base = substr( $mac1, 0, 15 );
  5. $offset1 = substr( $mac1, 15 );
  6. $offset2 = substr( $mac2, 15 );
  7.  
  8. for( $i = hexdec($offset1); $i<=hexdec($offset2); $i++ )
  9. echo $base.sprintf('%02X',$i).'<br />';


Jeśli zmienia się więcej to trzeba usunąć dwukropki z offsetów przy pomocy str_replace() przed zamianą na dec, a przy wyświetlaniu wstawić z powrotem przez wordwrap().
HaPe
Dzięki wielkie.
Mam jeszcze taki mały problem, chciałem przerobić skrypt wg Twojej rady, aby obsługiwał cały adres mac, a nie tylko ostatnie 8 bitów.
  1.  
  2. $mac1 = "0F:69:6D:4F:B9:01";
  3. $mac2 = "0F:69:6D:4F:B9:0A";
  4. $offset1 = str_replace(':', '', $mac1);
  5. $offset2 = str_replace(':', '', $mac2);
  6.  
  7. for( $i = hexdec($offset1); $i<=hexdec($offset2); $i++ ) {
  8. $pre_mac = sprintf('%02X',$i);
  9. $mac = wordwrap($i, 2, ":", true);
  10. echo $mac."<br />"


Jednak jako wynik tego algorytmu zwracane są takie dane:
Cytat
16:94:54:79:92:39:69
16:94:54:79:92:39:70
16:94:54:79:92:39:71
16:94:54:79:92:39:72
16:94:54:79:92:39:73
16:94:54:79:92:39:74
16:94:54:79:92:39:75
16:94:54:79:92:39:76
16:94:54:79:92:39:77
16:94:54:79:92:39:78


Jak poprawić skrypt, aby poprawnie działał wg mojego założenia z pierwszego posta? Co jest w nim źle?
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.