04-01-2013, 08:16
|
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
|
|
חבר מתאריך: 25.10.01
הודעות: 42,775
|
|
יש את זה :
http://www.no-ip.com
אם אתה בכל זאת רוצה סקריפט, אז כתבתי בשבילך משהו קצר ב PHP:
קוד PHP:
<?php
define('GET_IP_URL', 'http://automation.whatismyip.com/n09230945.asp');
define('LAST_IP_FILE_DIRECTORY', '.');
define('LAST_IP_FILE_NAME', 'last_ip.txt');
define('NOTIFY_EMAIL', 'your@email.com');
$myip = file_get_contents(GET_IP_URL);
if ($myip === FALSE)
die("Failed fetching IP Address\n");
$myip = trim($myip);
if (!filter_var($myip, FILTER_VALIDATE_IP))
die("WhatIsMyIP.com returned an output which is not a valid IP Address. Quitting!\n");
$lastip = (file_exists(LAST_IP_FILE_DIRECTORY . '/' . LAST_IP_FILE_NAME))
? file_get_contents(LAST_IP_FILE_DIRECTORY . '/' . LAST_IP_FILE_NAME)
: '0.0.0.0';
if ($myip != $lastip)
{
echo "Your IP has changed from $lastip to $myip. Notifying " . NOTIFY_EMAIL . "...\n";
file_put_contents(LAST_IP_FILE_DIRECTORY . '/' . LAST_IP_FILE_NAME, $myip);
mail(NOTIFY_EMAIL, "Your IP has changed from $lastip to $myip", "$lastip => $myip");
}
else
echo "Your IP was, and still is, $myip. Not doing anything.\n";
?>
שים לב - בשביל שזה יעבוד, אתה צריך במינימום: להגדיר שם את כתובת ה e-mail שלך, ולוודא שב php.ini ההגדרה allow_url_fopen תהיה On. אתה גם צריך להריץ את הסקריפט מאותו מיקום בכל פעם, בשביל קובץ ההסטוריה, או לחלופין, לציין את הנתיב המלא שלו בקבוע שבתחילת הסקריפט.
אם זה רץ תחת חלונות, צריך גם ב php.ini להגדיר שרת SMTP ופורט מתאימים לצורך שליחת המייל
אם זה רץ תחת לינוקס, צריך לוודא שיש sendmail תקין
ובכל מקרה, עלולה להיות לך בעייה עם העניין הזה, אם אתה לא עושה authentication מול שרת הדואר שאליו אתה שולח, בגלל שבד"כ כתובות IP ביתיות יהיו ברשימות שחורות שרוב שרתי הדואר הנכנס יחסמו. אפשר גם להעביר את נטל האימות ל PHP באמצעות אינקלוד של ספריה ייעודית לדברים כאלה לקוד: http://pear.php.net/Net_SMTP, אבל זה כבר קצת מעבר ל scope, בייחוד שטרם הסברת מדוע לא תשתמש בשירות כמו NO-IP...
בהצלחה...
|