summaryrefslogtreecommitdiffstats
path: root/usr/local/www/diag_dns.php
diff options
context:
space:
mode:
authorScott Ullrich <sullrich@pfsense.org>2010-07-30 21:42:34 -0400
committerScott Ullrich <sullrich@pfsense.org>2010-07-30 21:42:34 -0400
commite55d4b3cb2d38809f67a983345b65d9dffd59904 (patch)
treef02d19d28e4eb6cac759389ecc5a50dd8c721652 /usr/local/www/diag_dns.php
parenta4a793c184f8169d9451b053ead9704794cbeb3c (diff)
downloadpfsense-e55d4b3cb2d38809f67a983345b65d9dffd59904.zip
pfsense-e55d4b3cb2d38809f67a983345b65d9dffd59904.tar.gz
Add option to create an alias from a dns lookup. If the alias exists it will prompt to overwtrite
Diffstat (limited to 'usr/local/www/diag_dns.php')
-rw-r--r--usr/local/www/diag_dns.php56
1 files changed, 56 insertions, 0 deletions
diff --git a/usr/local/www/diag_dns.php b/usr/local/www/diag_dns.php
index ad62da2..fbdeea5 100644
--- a/usr/local/www/diag_dns.php
+++ b/usr/local/www/diag_dns.php
@@ -38,6 +38,52 @@ require("guiconfig.inc");
if ($_GET['host'])
$_POST = $_GET;
+if($_GET['createalias'] == "true") {
+ $host = trim($_POST['host']);
+ if($_GET['override'])
+ $override = true;
+ $a_aliases = &$config['aliases']['alias'];
+ $type = "hostname";
+ $resolved = gethostbyname($host);
+ if($resolved) {
+ $host = trim($_POST['host']);
+ $dig=`dig "$host" A | grep "$host" | grep -v ";" | awk '{ print $5 }'`;
+ $resolved = split("\n", $dig);
+ $isfirst = true;
+ foreach($resolved as $re) {
+ if(!$isfirst)
+ $addresses .= " ";
+ $addresses .= $re;
+ $isfirst = false;
+ }
+ $newalias = array();
+ $aliasname = str_replace(array(".","-"), "_", $host);
+ $alias_exists = false;
+ $counter=0;
+ foreach($a_aliases as $a) {
+ if($a['name'] == $aliasname) {
+ $alias_exists = true;
+ $id=$counter;
+ }
+ $counter++;
+ }
+ if($override)
+ $alias_exists = false;
+ if($alias_exists == false) {
+ $newalias['name'] = $aliasname;
+ $newalias['type'] = "host";
+ $newalias['address'] = $addresses;
+ $newalias['descr'] = "Created from Diagnostics-> DNS Lookup";
+ if($override)
+ $a_aliases[$id] = $newalias;
+ else
+ $a_aliases[] = $newalias;
+ write_config();
+ $createdalias = true;
+ }
+ }
+}
+
if ($_POST) {
unset($input_errors);
@@ -128,8 +174,18 @@ include("head.inc"); ?>
} else {
echo $resolved;
}
+ if($alias_exists) {
+ echo "An alias already exists for the hostname {$newalias['name']}. To overwrite, click <a href='diag_dns.php?host=" . trim(urlencode($host)) . "&createalias=true&override=true'>here</a>.";
+ } else {
+ if(!$createdalias) {
+ echo "<a href='diag_dns.php?host=" . trim(urlencode($host)) . "&createalias=true'>Create alias</a> out of these entries.";
+ } else {
+ echo "Alias created with name {$newalias['name']}";
+ }
+ }
?>
<font size="-1>">
+
<? } ?>
</td></tr></table>
</td>
OpenPOWER on IntegriCloud