View Single Post
  #2  
Old 10th July 2009, 17:51
BorderAmigos BorderAmigos is offline
Senior Member
 
Join Date: Apr 2008
Location: San Diego & Tijuana
Posts: 302
Thanks: 26
Thanked 33 Times in 31 Posts
Send a message via MSN to BorderAmigos Send a message via Yahoo to BorderAmigos
Default

I did some updates to this little script. Sometimes my remote server wasn't responding and so I would have an empty IP address. I added a check do do nothing if this is the case.

Also added some lines to email me when the IP changed, one of which goes to my cell phone. This script runs on a cron job every 10 minutes with the output piped to a log file. The log file is rotated with logrotated. Seems to work well so far.

Putting the update here just in case anyone can use it.

Quote:
<?php
// Configuration
$db_server = 'localhost';
$db_user = 'root';
$db_password = 'password';
$echo_page = 'http://remoteserver.com/ip/index.shtml'; // <!--#echo var="REMOTE_ADDR" -->
// Find current dynamic IP address
$echoed_ip = trim(file_get_contents($echo_page));
echo date('l jS F Y h:i:s A');
if (!$echoed_ip == '')
{
// Find current stored IP address
$con = mysql_connect($db_server,$db_user,$db_password);
if (!$con) die('Could not connect: ' . mysql_error());
mysql_select_db('dbispconfig', $con);
$table_data = mysql_query("SELECT * FROM dns_rr");
$change_flag = false;
while ($item_data = mysql_fetch_array($table_data))
{
if ($item_data['type'] == 'A')
{
$stored_ip = trim($item_data['data']);
if (!($stored_ip == $echoed_ip)) $change_flag = true;
}
}
if ($change_flag)
{
$ipmessage=' - IP Changed from '.$stored_ip.' to '.$echoed_ip.'.';
echo $ipmessage;
mysql_query("UPDATE dns_rr SET data='$echoed_ip' WHERE type='A'");
mail('me@yahoo.com','IP Change',$ipmessage);
mail('0005551212@vtext.com','IP Change',$ipmessage);
}
else
{
echo ' ... No Change.';
}
mysql_close($con);
}
else
{
echo '!!! Null IP !!!';
}
?>
__________________
System6Hosting.com, ISPConfig 3, Debian.
Reply With Quote