ash wycinanie adresu IP ze strony php.

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Skajper4
Piegowaty Guziec
Piegowaty Guziec
Posty: 24
Rejestracja: 28 lis 2012, 17:23
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: KDE Plasma
Architektura: x86_64

ash wycinanie adresu IP ze strony php.

Post autor: Skajper4 »

Potrzebuję wyciąć sam adres IP ze strony np. tej do zmiennej. Wpadły mi na myśl dwie metody. Albo wycięcie grepem z pliku .php, lub użycie przeglądarki elinks i z niej wycięcie grepem adresu IP. Jednak mam problem w obsłudze grepa, ponieważ nie wiem jak wyciąć samo IP bez zbędnych śmieci typu znaczniki php, tekst lub nazwa hosta. Więc, jak to zrobić? Zmienną będzie np. $IP
Ostatnio zmieniony 13 mar 2014, 19:12 przez Skajper4, łącznie zmieniany 1 raz.
Awatar użytkownika
Pasman
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 166
Rejestracja: 06 sty 2013, 19:31
Płeć: Mężczyzna
Wersja Ubuntu: 16.04
Środowisko graficzne: Inne
Architektura: x86_64

Re: Bash wycinanie adresu IP ze strony php.

Post autor: Pasman »

A spróbowałeś już cokolwiek zrobić?
Mint 21.1, 5600G, RX6600
Skajper4
Piegowaty Guziec
Piegowaty Guziec
Posty: 24
Rejestracja: 28 lis 2012, 17:23
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Re: Bash wycinanie adresu IP ze strony php.

Post autor: Skajper4 »

Tak, próbowałem. Kończę pisać już dalszą część skryptu, więc została mi tylko ta zmienna. Niestety nie umiem obsłużyć grepa i w tym mam problem. Według instrukcji też mi nie wychodzi bo albo nie filtruje, albo nie dostaję na wyjściu nic, więc chciałbym zrobić tą część od początku.
PS. Nie potrzebuję gotowca, chcę się nauczyć ponieważ potrzebuję tego w celach prywatnych.
namok
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1703
Rejestracja: 01 mar 2008, 12:21
Płeć: Mężczyzna
Wersja Ubuntu: 16.04
Środowisko graficzne: Unity
Architektura: x86_64
Kontakt:

Re: Bash wycinanie adresu IP ze strony php.

Post autor: namok »

Tutaj coś znajdziesz.
bear7
Przyjaciel
Przyjaciel
Posty: 6686
Rejestracja: 20 sty 2009, 23:12
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64
Lokalizacja: pwd

Re: Bash wycinanie adresu IP ze strony php.

Post autor: bear7 »

Skajper4 pisze:Nie potrzebuję gotowca, chcę się nauczyć ponieważ potrzebuję tego w celach prywatnych.
Zasada zazwyczaj jest taka, że jak szukasz pomocy, to wrzucasz to, co do tej pory zrobiłeś i w rezultacie otrzymujesz odpowiedź, co i gdzie możesz poprawić, aby było lepiej.

W takiej formie wymiany zdań, jak obecna, z wątku zrobi się kolejny nikomu nie przydatny tasiemiec.

Chyba że oczekujesz odpowiedzi w stylu, zapoznaj się z manualem grepa...
O pomoc pytaj a forum, a nie przez PW.
Awatar użytkownika
JSokol
Sędziwy Jeż
Sędziwy Jeż
Posty: 67
Rejestracja: 18 mar 2010, 10:57
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: Unity
Architektura: x86_64
Lokalizacja: Down under
Kontakt:

Re: Bash wycinanie adresu IP ze strony php.

Post autor: JSokol »

Czy celem tego grep'owania ma być uzyskanie adresu IP osoby która skrypt wywołuje?
Jeśli tak, to odwoływanie się do "stron trzecich" po tego typu parametr jest trochę jak strzelanie z armaty do komara.
Skajper4
Piegowaty Guziec
Piegowaty Guziec
Posty: 24
Rejestracja: 28 lis 2012, 17:23
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Re: Bash wycinanie adresu IP ze strony php.

Post autor: Skajper4 »

Tak, ma to na celu pobranie zewnętrznego IP. Jako iż serwer dostaje IP 192.168.2.x to nie mogłem go pobrać z portu wan. Jeśli masz jakieś inne propozycje jak to wyciągnąć, proszę bardzo.
Ja jednak wolę strzelać z armaty w komara niż nie mieć nic. Obecnie zrobiłem to za pomocą przeglądarki elinks i działa świetnie, jednak wolałbym to wyciąć z surowego pliku html. Obciążenie podczas pracy skryptu jest znikome.

Kod: Zaznacz cały

logger -p user.notice "noip.com" "Aktualizowanie $domena"
ip=$(elinks www.mojeip.com.pl | grep -A2 Twoje | tail -n1 | sed  -e 's/ //g')
wget -q -O - "http://$login:$haslo@dynupdate.no-ip.com/nic/update?hostname=$domena&$ip"
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: Bash wycinanie adresu IP ze strony php.

Post autor: ethanak »

a jak w bashu dostaniesz się do kodu? o ile mnie pamięć nie myli bash nie ma wbudowanej obsługi http...
to co pokazałeś jest całkiem prawidłowe (ja bym co prawda użył lynxa a nie elinksa, ale w sumie 1H).
Кто жопой родился, чижиком не помрёт
Skajper4
Piegowaty Guziec
Piegowaty Guziec
Posty: 24
Rejestracja: 28 lis 2012, 17:23
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Re: Bash wycinanie adresu IP ze strony php.

Post autor: Skajper4 »

ethanak pisze:a jak w bashu dostaniesz się do kodu? o ile mnie pamięć nie myli bash nie ma wbudowanej obsługi http...
Raczej nie musi mieć. Wystarczy, że umie wyświetlić zawartość html-a jako tekst. Z tego co widzę, "muszę się zapoznać z lekturą nt. grep, tail i sed" czego pełne pojęcie zajmie mi czas do wakacji :) Dziękuję.
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: Bash wycinanie adresu IP ze strony php.

Post autor: ethanak »

No tak, ale żeby tego HTML-a wyświetlić, musi go skądś mieć, prawda? A jeśli mam to ściągać np. wgetem to wolę użyć lynxa, który mi całą robotę z parsowaniem HTML-a przy okazji odwali.
Co do lektury polecałbym jeszcze awk - dużo rzeczy można w tym bardzo prosto zrobić.
Кто жопой родился, чижиком не помрёт
Awatar użytkownika
enedil
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1352
Rejestracja: 08 wrz 2012, 16:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: i3
Architektura: x86_64
Kontakt:

Re: Bash wycinanie adresu IP ze strony php.

Post autor: enedil »

ethanak pisze:a jak w bashu dostaniesz się do kodu? o ile mnie pamięć nie myli bash nie ma wbudowanej obsługi http...
to co pokazałeś jest całkiem prawidłowe (ja bym co prawda użył lynxa a nie elinksa, ale w sumie 1H).
Do takich rzeczy najprzydatniejsza wydaje mi się w3m, która umie wypisać stronę na stdout (nie wiem jak z proponowanym Lynxem czy elinksem).
Dobrze jest, psiakrew, a kto powie, że nie, to go w mordę!

~moderatorzy
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: Bash wycinanie adresu IP ze strony php.

Post autor: ethanak »

@enedil:
Owszem, Lynx potrafi i to bardzo dobrze potrafi - dlatego go polecam.

Kod: Zaznacz cały

lynx --dump http://cośtam.cośtam
Кто жопой родился, чижиком не помрёт
Skajper4
Piegowaty Guziec
Piegowaty Guziec
Posty: 24
Rejestracja: 28 lis 2012, 17:23
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Re: Bash wycinanie adresu IP ze strony php.

Post autor: Skajper4 »

Niestety, ale lynxa nie ma na OpenWrt a na tym ten skrypt jest uruchamiany, bo bez sensu byłoby np. na malince czy innych 3rd urządzeniach "korzystających" z sieci.
Awatar użytkownika
jacekalex
Gibki Gibbon
Gibki Gibbon
Posty: 4707
Rejestracja: 17 cze 2007, 02:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: MATE
Architektura: x86_64

Re: Bash wycinanie adresu IP ze strony php.

Post autor: jacekalex »

Do takiej zabawy wymiata curl, właśnie wywala stronę na stdout.
Do zabawy z czesaniem danych z html/javascripta/ajaxa radziłbym zatrudnić perla, moduły www-mechanize i www-scripter-plugin-*.

Pozdro
:craz:
Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux :)
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: Bash wycinanie adresu IP ze strony php.

Post autor: ethanak »

Skajper4 pisze:Niestety, ale lynxa nie ma na OpenWrt a na tym ten skrypt jest uruchamiany,.
Miło że o tym poinformowałeś.
jacekalex pisze:Do zabawy z czesaniem danych z html/javascripta/ajaxa radziłbym zatrudnić perla, moduły www-mechanize i www-scripter-plugin-*.
Ty zawsze do komara z armaty strzelasz? A w płot już trafiłeś?
W tym konkretnym przypadku wystarczą podstawowe polecenia:

Kod: Zaznacz cały

curl -s http://www.mojeip.com.pl | grep -oE '([[:digit:]]+\.){3}[[:digit:]]+' | head -n 1
Nie wiem, czy curl jest w OWRT, ale jeśli nie curl to wget powinien być, a na dobrą sprawę i nc wystarczy

Kod: Zaznacz cały

echo -e 'GET / HTTP/1.1\nHost: www.mojeip.com.pl\n\n' | nc www.mojeip.com.pl 80 | grep -oE '([[:digit:]]+\.){3}[[:digit:]]+' | head -n 1
Кто жопой родился, чижиком не помрёт
Awatar użytkownika
jacekalex
Gibki Gibbon
Gibki Gibbon
Posty: 4707
Rejestracja: 17 cze 2007, 02:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: MATE
Architektura: x86_64

Re: Bash wycinanie adresu IP ze strony php.

Post autor: jacekalex »

Ty zawsze do komara z armaty strzelasz? A w płot już trafiłeś?
Oj tam, w komara z armaty zaraz. :twisted:

Raz przyjdzie czesanie adresów IP, a innym razem czesanie kursów akcji ze stron GPW,
a jeszcze innym czesanie USG brzucha ze stron nk i fb. :twisted:

Sposoby bashowe zawsze kiedyś się kończą, u mnie zakończyło je parsowanie wyniku javascripta.
Używanie modułów perla wcale nie jest dużo trudniejsze od Twojego rękodzieła artystycznego, za to pozwala np zdekodować stronę przy użyciu Webkita
http://search.cpan.org/~nine/WWW-WebKit ... /WebKit.pm
i setki innych opcji, do których Bash jest troszkę za cienki, np do ładowania unikalnych wyników do bazy SQL.

W Bashu też można, ale po co sobie życie komplikować, jeśli jest Perl i Python?

Prawdziwy język programowania zabezpiecza proces rośnięcia skrypta w coś większego, z bardziej specjalistycznymi funkcjami.
Taka jest właśnie smutna dola setek skryptów do czesania różnych danych z sieci, które zaczynają się na trzech linijkach, a potem się dodaje do nich jeszcze to, tamto i owamto, w miarę potrzeby.

Wystarczy wspomnieć chociażby smutny los żniwiarek do adresów email, które muszą się nauczyć javascripta do skutecznego działania. :twisted:

Pozdro
:craz:
Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux :)
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: Bash wycinanie adresu IP ze strony php.

Post autor: ethanak »

nawet bym się z Tobą zgodził... tylko jakoś czarno widzę odpalenie rhino czy webkita na routerku z 32 MB RAM - a na takich maszynkach zwykł działać openwrt :)
BTW. sam używam webkita i bardzo go sobie chwalę - ale w przypadkach kiedy wystarczy prosty grep wolę zastosować grepa.

poza tym rękodzieło artystyczne też warto znać ;)
Кто жопой родился, чижиком не помрёт
Awatar użytkownika
jacekalex
Gibki Gibbon
Gibki Gibbon
Posty: 4707
Rejestracja: 17 cze 2007, 02:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: MATE
Architektura: x86_64

Re: Bash wycinanie adresu IP ze strony php.

Post autor: jacekalex »

Za to perl pewnie jest (z wbudowanym potężnym silnikiem wyrażeń regularnych) a www-mechanize - to raptem 140 kB (u mnie).
Przewaga nad curlem taka, że domyślnie wyczytuje stronkę do zmiennej, i można potem wielokrotnie czesać zawartość ściągniętej strony, póki jest przechowywana w zmiennej.
W Bashu takie zachowanie trzeba wyrzeźbić, i jest to bycza zabawa. ;)

Pomijam takie bajki, jak sprawdzanie poprawności i rodzaju adresu IP, np czy IPv4 czy IPv6, i czy to np adres klasy prywatnej, czy multicast.

Do tego w Bashu "jest z 50 modułów", w Perlu tylko kilka działających.
Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux :)
Skajper4
Piegowaty Guziec
Piegowaty Guziec
Posty: 24
Rejestracja: 28 lis 2012, 17:23
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Re: Bash wycinanie adresu IP ze strony php.

Post autor: Skajper4 »

Raczej ram jest najmniejszym problemem, mój router posiada 64MB i wystarcza, gorzej z pamięcią flash bo ma pojemność chyba 4MB i 50% zajęte juz jest.
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: Bash wycinanie adresu IP ze strony php.

Post autor: ethanak »

jacekalex pisze:Za to perl pewnie jest (z wbudowanym potężnym silnikiem wyrażeń regularnych) a www-mechanize - to raptem 140 kB (u mnie).
Bądź konsekwentny. Pisałeś poprzednio o parsowaniu JS, teraz piszesz o www-mechanize... a nie jest przypadkiem tak, że www-mechanize nie zna javascriptu?
Co do wyrażeń regularnych - coż, zawsze można dać grepowi parametr -P ;)
Przewaga nad curlem taka,
Przed chwilą sam polecałeś curla - teraz już odlecasz? Zdecyduj się.

Możesz mieć na ten temat inne zdanie ale ja uważam, iż najprostsze metody są najlepsze. Przypominam o Brzytwie Ockhama i KISS!
Кто жопой родился, чижиком не помрёт
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 3 gości