Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pobranie IP w skrypcie wywolanym z crona
Forum PHP.pl > Forum > PHP
kabooom
Witam
Mam skrypt ktory okresowo wysyla mejle z linkiem zwrotnym, uruchamiam go z cron'a, i z tego powodu nie bardzo moge dobrac sie do $_SERVER['HTTP_HOST'].
No i pytanie- jak wyciagnac w tym przypadku adres?
nospor
Adres czego? Serwera? No to nie wiesz na jakim serwerze masz skrypt?
kabooom
Cytat(nospor @ 23.02.2011, 12:22:11 ) *
Adres czego? Serwera? No to nie wiesz na jakim serwerze masz skrypt?

Tak publiczny adres serwera, system ma być instalowany u kilkunastu klientów i dlatego chciałem to zautomatyzować.
nospor
Raczej się nie dobierzesz do adresu publicznego serwera.

Załóżmy ze instalujesz to na hostingu. Tam przecież stoją różne serwisy, różnych ludzi a każdy ma swój własny adres publiczny. Skąd więc cron ma wiedzieć, że ma dać akurat Twój?
dr_bonzo
Rozwiazanie jest proste. W cronie dodaj parametr z domena twoje stronki i juz.

Albo odpalaj crona przez "curl -costam http://stronka/cron/12938192387192837" - bedziesz znal domene
kabooom
solved wink.gif takie coś skleciłem:

Kod
function getMyPublicIP( $url='http://checkip.dyndns.org' )
{
$page_content = file_get_contents($url);
$parts = explode(":", $page_content);
$ip = trim( $parts[1] );
return $ip;
}
uupah5
albo bez php, bezpośrednio z shella:
wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
kabooom
o, tak jeszcze lepiej ;p

Kod
function getMyPublicIP( $url='http://checkip.dyndns.org' )
{
$page_content = file_get_contents($url);
preg_match ( '/(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}/' , //ip regexp
      $page_content, $matches );
return $matches[0];
}
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.