diff options
author | bcyrill <cyrill@bannwart.info> | 2013-02-13 21:17:27 +0100 |
---|---|---|
committer | bcyrill <cyrill@bannwart.info> | 2013-02-13 21:17:27 +0100 |
commit | ab4ce295ed9d434a1f1ecba6f3fd282e3b923f4a (patch) | |
tree | adf7542d93da0aaa049fd73932d56bcb1aefdce0 /usr/local/www | |
parent | 30b32e73814f52b5f997869246aff321ced56d44 (diff) | |
download | pfsense-ab4ce295ed9d434a1f1ecba6f3fd282e3b923f4a.zip pfsense-ab4ce295ed9d434a1f1ecba6f3fd282e3b923f4a.tar.gz |
Update dyndns service and widget
Diffstat (limited to 'usr/local/www')
-rwxr-xr-x | usr/local/www/services_dyndns.php | 11 | ||||
-rw-r--r-- | usr/local/www/widgets/widgets/dyn_dns_status.widget.php | 160 |
2 files changed, 92 insertions, 79 deletions
diff --git a/usr/local/www/services_dyndns.php b/usr/local/www/services_dyndns.php index 4b88178..2d209c1 100755 --- a/usr/local/www/services_dyndns.php +++ b/usr/local/www/services_dyndns.php @@ -55,7 +55,6 @@ if ($_GET['act'] == "del") { mwexec("/bin/rm {$g['conf_path']}/dyndns_*.cache"); write_config(); - services_dyndns_configure(); header("Location: services_dyndns.php"); @@ -63,7 +62,6 @@ if ($_GET['act'] == "del") { } function dyndnsCheckIP($int) { - $ip_address = get_interface_ip($int); if (is_private_ip($ip_address)) { $hosttocheck = "checkip.dyndns.org"; @@ -78,7 +76,6 @@ function dyndnsCheckIP($int) { preg_match('=Current IP Address: (.*)</body>=siU', $ip_result_decoded, $matches); $ip_address = trim($matches[1]); } - return $ip_address; } @@ -124,18 +121,16 @@ include("head.inc"); echo "<span class=\"gray\">{$ifdesc}</span>"; else echo "{$ifdesc}"; - $iface = $if; break; } } $groupslist = return_gateway_groups_array(); - foreach ($groupslist as $if => $group) { + foreach ($groupslist as $if => $group) { if ($dyndns['interface'] == $if) { if (!isset($dyndns['enable'])) echo "<span class=\"gray\">{$if}</span>"; else echo "{$if}"; - $iface = $if; break; } } @@ -165,9 +160,9 @@ include("head.inc"); </td> <td class="listr"> <?php - $filename = "{$g['conf_path']}/dyndns_{$iface}{$dyndns['type']}" . escapeshellarg($dyndns['host']) . "{$dyndns['id']}.cache"; - $ipaddr = dyndnsCheckIP($iface); + $filename = "{$g['conf_path']}/dyndns_{$dyndns['interface']}{$dyndns['type']}" . escapeshellarg($dyndns['host']) . "{$dyndns['id']}.cache"; if (file_exists($filename)) { + $ipaddr = dyndnsCheckIP($dyndns['interface']); $cached_ip_s = explode(":", file_get_contents($filename)); $cached_ip = $cached_ip_s[0]; if ($ipaddr <> $cached_ip) diff --git a/usr/local/www/widgets/widgets/dyn_dns_status.widget.php b/usr/local/www/widgets/widgets/dyn_dns_status.widget.php index 5680b64..94a4a1b 100644 --- a/usr/local/www/widgets/widgets/dyn_dns_status.widget.php +++ b/usr/local/www/widgets/widgets/dyn_dns_status.widget.php @@ -37,86 +37,104 @@ $nocsrf = true; require_once("guiconfig.inc"); require_once("pfsense-utils.inc"); require_once("functions.inc"); - -/* added the dyn_dns_status.inc file to the .inc directory, -copied from dyn_dns_status.inc and edited it to work with this file */ - require_once("/usr/local/www/widgets/include/dyn_dns_status.inc"); - if (!is_array($config['dyndnses']['dyndns'])) $config['dyndnses']['dyndns'] = array(); $a_dyndns = &$config['dyndnses']['dyndns']; function dyndnsCheckIP($int) { - - $ip_address = get_interface_ip($int); - if (is_private_ip($ip_address)) { - $hosttocheck = "checkip.dyndns.org"; - $checkip = gethostbyname($hosttocheck); - $ip_ch = curl_init("http://{$checkip}"); - curl_setopt($ip_ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($ip_ch, CURLOPT_SSL_VERIFYPEER, FALSE); - curl_setopt($ip_ch, CURLOPT_INTERFACE, $ip_address); - $ip_result_page = curl_exec($ip_ch); - curl_close($ip_ch); - $ip_result_decoded = urldecode($ip_result_page); - preg_match('=Current IP Address: (.*)</body>=siU', $ip_result_decoded, $matches); - $ip_address = trim($matches[1]); - } - return $ip_address; + $ip_address = get_interface_ip($int); + if (is_private_ip($ip_address)) { + $hosttocheck = "checkip.dyndns.org"; + $checkip = gethostbyname($hosttocheck); + $ip_ch = curl_init("http://{$checkip}"); + curl_setopt($ip_ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ip_ch, CURLOPT_SSL_VERIFYPEER, FALSE); + curl_setopt($ip_ch, CURLOPT_INTERFACE, $ip_address); + $ip_result_page = curl_exec($ip_ch); + curl_close($ip_ch); + $ip_result_decoded = urldecode($ip_result_page); + preg_match('=Current IP Address: (.*)</body>=siU', $ip_result_decoded, $matches); + $ip_address = trim($matches[1]); + } + return $ip_address; } ?> <table width="100%" border="0" cellpadding="0" cellspacing="0"> - <tr> - <td> - <tr> - <td width="5%" class="listhdrr"><?=gettext("Int.");?></td> - <td width="15%" class="listhdrr"><?=gettext("Service");?></td> - <td width="20%" class="listhdrr"><?=gettext("Hostname");?></td> - <td width="20%" class="listhdrr"><?=gettext("Cached IP");?></td> - </tr> - <?php $i = 0; foreach ($a_dyndns as $dyndns): ?> - <tr ondblclick="document.location='services_dyndns_edit.php?id=<?=$i;?>'"> - <td class="listlr"> - <?php $iflist = get_configured_interface_with_descr(); - foreach ($iflist as $if => $ifdesc): - if ($dyndns['interface'] == $if): ?> - <?=$ifdesc; break;?> - <?php endif; endforeach; ?> - </td> - <td class="listlr"> - <?php - $types = explode(",", "DNS-O-Matic,DynDNS (dynamic),DynDNS (static),DynDNS (custom),DHS,DyNS,easyDNS,No-IP,ODS.org,ZoneEdit,Loopia,freeDNS,DNSexit,OpenDNS,Namecheap,HE.net,HE.net Tunnelbroker,SelfHost,Route 53,Custom"); - $vals = explode(" ", "dnsomatic dyndns dyndns-static dyndns-custom dhs dyns easydns noip ods zoneedit loopia freedns dnsexit opendns namecheap he-net he-net-tunnelbroker selfhost route53 custom"); - for ($j = 0; $j < count($vals); $j++) - if ($vals[$j] == $dyndns['type']) { - echo htmlspecialchars($types[$j]); - break; - } - ?> - </td> - <td class="listr"> - <?=htmlspecialchars($dyndns['host']);?> - </td> - <td class="listlr"> - <?php - $filename = "{$g['conf_path']}/dyndns_{$if}{$dyndns['type']}" . escapeshellarg($dyndns['host']) . "{$dyndns['id']}.cache"; - $ipaddr = dyndnsCheckIP($if); - if(file_exists($filename)) { - $cached_ip_s = split(":", file_get_contents($filename)); - $cached_ip = $cached_ip_s[0]; - if($ipaddr <> $cached_ip) echo "<font color='red'>"; - else echo "<font color='green'>"; - echo htmlspecialchars($cached_ip); - echo "</font>"; - } else echo "N/A"; - ?> - </td> - </tr> - <?php $i++; endforeach; ?> - </td> - </tr> -</table> + <tr> + <td width="5%" class="listhdrr"><?=gettext("Int.");?></td> + <td width="15%" class="listhdrr"><?=gettext("Service");?></td> + <td width="20%" class="listhdrr"><?=gettext("Hostname");?></td> + <td width="20%" class="listhdrr"><?=gettext("Cached IP");?></td> + </tr> + <?php $i = 0; foreach ($a_dyndns as $dyndns): ?> + <tr ondblclick="document.location='services_dyndns_edit.php?id=<?=$i;?>'"> + <td class="listlr"> + <?php $iflist = get_configured_interface_with_descr(); + foreach ($iflist as $if => $ifdesc) { + if ($dyndns['interface'] == $if) { + if (!isset($dyndns['enable'])) + echo "<span class=\"gray\">{$ifdesc}</span>"; + else + echo "{$ifdesc}"; + break; + } + } + $groupslist = return_gateway_groups_array(); + foreach ($groupslist as $if => $group) { + if ($dyndns['interface'] == $if) { + if (!isset($dyndns['enable'])) + echo "<span class=\"gray\">{$if}</span>"; + else + echo "{$if}"; + break; + } + } + ?> + </td> + <td class="listlr"> + <?php + $types = explode(",", "DNS-O-Matic,DynDNS (dynamic),DynDNS (static),DynDNS (custom),DHS,DyNS,easyDNS,No-IP,ODS.org,ZoneEdit,Loopia,freeDNS,DNSexit,OpenDNS,Namecheap,HE.net,HE.net Tunnelbroker,SelfHost,Route 53,Custom"); + $vals = explode(" ", "dnsomatic dyndns dyndns-static dyndns-custom dhs dyns easydns noip ods zoneedit loopia freedns dnsexit opendns namecheap he-net he-net-tunnelbroker selfhost route53 custom"); + for ($j = 0; $j < count($vals); $j++) + if ($vals[$j] == $dyndns['type']) { + if (!isset($dyndns['enable'])) + echo "<span class=\"gray\">".htmlspecialchars($types[$j])."</span>"; + else + echo htmlspecialchars($types[$j]); + break; + } + ?> + </td> + <td class="listr"> + <?php + if (!isset($dyndns['enable'])) + echo "<span class=\"gray\">".htmlspecialchars($dyndns['host'])."</span>"; + else + echo htmlspecialchars($dyndns['host']); + ?> + </td> + <td class="listlr"> + <?php + $filename = "{$g['conf_path']}/dyndns_{$dyndns['interface']}{$dyndns['type']}" . escapeshellarg($dyndns['host']) . "{$dyndns['id']}.cache"; + if (file_exists($filename)) { + $ipaddr = dyndnsCheckIP($dyndns['interface']); + $cached_ip_s = split(":", file_get_contents($filename)); + $cached_ip = $cached_ip_s[0]; + if ($ipaddr <> $cached_ip) + echo "<font color='red'>"; + else + echo "<font color='green'>"; + echo htmlspecialchars($cached_ip); + echo "</font>"; + } else { + echo "N/A"; + } + ?> + </td> + </tr> + <?php $i++; endforeach; ?> +</table>
\ No newline at end of file |