Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] IP serwera i wysyłanie wiadomości
Forum PHP.pl > Forum > Przedszkole
php__amator
Witam,
Jakiś czas temu zapytałem czy da się coś takiego zrobić:

skrypt sprawdza ip serwera i przechowuje w jakiejś zmiennej.
co jakiś czas sprawdza ponownie ip i porównuje z przechowywanym wcześniejszym.

Jeśli się różni to wysyła informację e-mail'em:
"Adres serwera: xxx.xxx.xxx.xxx, buziaki, pa"

i zachowuje nowy adres w zmiennej.

Czy mogłby któryś z osobników zorientowanych w Javascript pokazać mi jak to zrobić ?


pozdrawiam
phpamator
werdan
Za mało danych.

> skrypt sprawdza ip serwera

Jakiego serwera? usera, swój IP, czy jakiegos hosta gdzies w sieci?

>co jakiś czas sprawdza ponownie ip i porównuje z przechowywanym wcześniejszym.
Przechowanym gdzie? Masz cały czas otwartą strone (czyli uruchomiony skrypt JS)?



W przypadku JS musisz miec otwarta strone z przegladarką (chyba ze NodeJS)

Mozesz sobie napisac skrypt PHP, który sprawdza IP hosta, zapisuje go do pliku lub porównuje z zapisana wartoscia, jak jest inna, to wysyła ci maila.

  1. <?php
  2. $hostname = "www.google.com";
  3. $resolved_ip = gethostbyname($hostname);
  4. echo "The Hostname $hostname resolves to $resolved_ip";
  5. ?>


Jak podepniesz skrypt PHP pod crona, to bedziesz miał bardzo dobre rozwiazanie problemu.

php__amator
OO hej,
dzięki za podpowiedź, jeszcze jak byś podpowiedział jak to podpiąć do CRON'a ?

Pozdrawiam
werdan
To zalezy czy hosting daje ci taką mozliwosc. Jak nie ma, to nic nie zrobisz. Poszukaj w specyfikacji swojego hostingu.
php__amator
to moj serwer w pracy i w sumie moge robić co mi się podoba wink.gif
tyle że nigdy tego nie robiłem dlatego pytam smile.gif

Dla porządku:
z zewnątrz dostęp mam tylko po IP, nie mam żadnego aliasu ani ani innej przypisanej nazwy więc sprawdzanie ip i wysyłanie mailem informacji o zmianie smile.gif
to mi jest potrzebne.
Serwer podłączony jest do routera i włączone przekierowanie portów: http, sftp.
Więc muszę sprawdzić adres zewnętrzny i .... sobie wyslac smile.gif

Czy CRON pozwala na ustawienie sprawdzania co określony czas ?

werdan
linux?
php__amator
tak, oczywiscie linux, Ubuntu 13 o ile dobrze pamiętam
werdan
http://www.ubuntu-pomoc.org/cron-automatyzacja-systemu/
http://forum.php.pl/index.php?showtopic=53589
http://www.thegeekstuff.com/2011/07/php-cron-job/
http://www.webhostingtalk.pl/topic/22869-c...ie-skryptu-php/

Przed ustawieniem crona potestuj sobie ten skrypt z palca, czyli uruchamiaj z przegladarki. Jak bedziesz pewien ze dobrze dziala, to daj na crona.
php__amator
Super dzięki,
jutro potestuje smile.gif

Pozdrawiam


Do kitu sad.gif
Odpalanie sprawdzania ip w rezultacie nie podaje zewnetrznego ip tylko lokalny adres a ten mi nie potrzebny sad.gif

Jest jakis patent aby sprawdzic IP zewnetrzny ?
werdan
Ten host jest w twojej sieci? Wiesz czemu tak sie dzieje?

Moze uruchomic ten skrypt z innego komputera.
php__amator
Hej,
Tak mogę ale łączenie z serwerem w sieci lokalnej nic mi nie daje bo wciaz wyświetla mi adres lokalny.
dopiero gdy łączę się z zewnątrz podaje mi adres którego potrzebuję sad.gif i kółko się zamyka bo nie będę sprawdzał adresu z zewnątrz tymbardziej gdy się zmieni i go poprostu nie znam. Dlatego szukam sposobu na sprawdzenie po stronie serwera jaki jest adres ( w przypadku zmiany) i automatycznie wysłanie go na mojego maila sad.gif



Sporo czasu upłynęło od kiedy napisałem tego posta,
sporo się dowiedziałem i nauczyłem smile.gif

I tak oto po wielu minutach i szeregu prób powstał skrypcik:
Podpięty do Crona i uruchamiany co 30 minut sprawdza IP, jeśli się zmieniło od poprzedniej próby zapisuje do bazy i wysyła email pod wskazany adres.

  1. // =========== IP test =============
  2. include('connection.php');
  3. $zewnetrzne_ip = file_get_contents('http://phihag.de/ip/');
  4. $aktualna_data = date('Y-m-d H:i:s');
  5. // =========== sprawdzenie =========
  6. $ostatni_ip = mysql_query("SELECT * FROM ipki ORDER BY id DESC LIMIT 1");
  7. $row = mysql_fetch_assoc($ostatni_ip);
  8. if ($row['ip_adr'] != $zewnetrzne_ip && $zewnetrzne_ip != ''){
  9. mysql_query("INSERT INTO ipki (ip_adr,data_zmiany) VALUES ('$zewnetrzne_ip','$aktualna_data')");
  10. // =========== e-mail ==============
  11. mail('tutaj@adres.email', 'New IP: '.$zewnetrzne_ip, 'New IP: '.$zewnetrzne_ip,'From: od@kogo.email');
  12. }


Działa wyśmienicie:) Ponadto, zapisuje mi do bazy każdorazowo ( w celach oczywiście edukacyjnych/statystycznych bo żadnego zastosowania poza tym jednym nie widzię smile.gif chyba, że żeby pokazać operatorowi jak bardzo do bani jest jego usługa)

Tak więc problem mojego zmiennego IP został ostatecznie rozwiązany.

Dziękuję za podpowiedzi, sugestie i słowa potępienia smile.gifsmile.gif
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.