Artur Zabroński napisał(a):
Dnia piątek, 16 lutego 2007 23:12, napisałeś:
Witam, w jaki sposób w skrypcie bash'a przerobić adres IP z bazy na "tradycyjny" ?
A jak wyciągasz? Jeżeli masz możliwość zmiany zapytania to zrób w SELECT zamień ipaddr na INET_NTOA(ipaddr).
A to jest informacja, dla osob, które chciały by to zrobić bez zamiany przy użyciu bazy danych :P Może się przydać w skryptach w BASHu ;)
IP w formie długiej jest to liczba w systemie 256-tkowym, uzyskana w następujący sposób:
Adres IP: www.xxx.yyy.zzz Wzór: 256^3*www+256^2*xxx+256^1*yyy+256^0*zzz
Algorytm do zamiany jej z powrotem na IP jest bardzo prosty :P Krok 1. Bierzesz z bazy wartość ipaddr, wrzucasz do zmiennej x.
Krok 2. Reszta z dzielenia przez 256 zmiennej jest cyfrą IP, kolejną od końca (w pierwszym przejściu ostatnią, w drugim przedostatnią, itd.). Zapisujesz więc gdzieś w pamięci.
Krok 3. Dzielisz całkowicie wartość zmiennej x przez 256 i podstawiasz pod tą samą zmienną x.
Krok 4. Wracasz do kroku 2 - 4 razy, lub póki liczba jest większa od zera:P
Pozdrawiam Konrad Cempura
_______________________________________________ lms mailing list lms@lists.lms.org.pl http://lists.lms.org.pl/mailman/listinfo/lms
uczestnicy (1)
-
Konrad Cempura