-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdns-dig.php
74 lines (68 loc) · 3.5 KB
/
dns-dig.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
$arActionList = [
'ALL' => DNS_ALL, 'ANY' => DNS_ANY, 'A' => DNS_A, 'AAAA' => DNS_AAAA, 'CNAME' => DNS_CNAME, 'MX' => DNS_MX, 'TXT' => DNS_TXT,
'NS' => DNS_NS, 'SOA' => DNS_SOA, 'PTR' => DNS_PTR, 'SRV' => DNS_SRV, 'NAPTR' => DNS_NAPTR, 'A6' => DNS_A6, 'HINFO' => DNS_HINFO
];
$arOptions = [
'options' => ['default' => null],
];
$bDebug = boolval(filter_input(INPUT_GET, 'debug', FILTER_VALIDATE_BOOLEAN));
$sDomain = strtolower(filter_input(INPUT_POST, 'txtDomain', FILTER_VALIDATE_DOMAIN, $arOptions));
$sAction = strtoupper(filter_input(INPUT_POST, 'txtBtn', FILTER_SANITIZE_STRING));
if ($sDomain != '' && $sAction != '') {
$sRet = ($bDebug) ? "Info :\n* sDomain : {$sDomain}\n* sAction : {$sAction}\n" : '';
if (isset($arActionList[$sAction])) {
$arRet = dns_get_record($sDomain, $arActionList[$sAction]);
$sRet .= "\nResult : \n";
foreach($arRet as $arRecord) {
if ($arRecord['type'] == 'A') {
$sRet .= "{$arRecord['host']} {$arRecord['ttl']} {$arRecord['class']} {$arRecord['type']} {$arRecord['ip']}\n";
} elseif ($arRecord['type'] == 'AAAA') {
$sRet .= "{$arRecord['host']} {$arRecord['ttl']} {$arRecord['class']} {$arRecord['type']} {$arRecord['ipv6']}\n";
} elseif ($arRecord['type'] == 'TXT') {
foreach($arRecord['entries'] as $sEntry) {
$sRet .= "{$arRecord['host']} {$arRecord['ttl']} {$arRecord['class']} {$arRecord['type']} {$sEntry}\n";
}
} elseif ($arRecord['type'] == 'SOA') {
$sRet .= "{$arRecord['host']} {$arRecord['ttl']} {$arRecord['class']} {$arRecord['type']} {$arRecord['mname']} {$arRecord['rname']} {$arRecord['serial']} {$arRecord['refresh']} {$arRecord['retry']} {$arRecord['expire']} {$arRecord['minimum-ttl']}\n";
} elseif ($arRecord['type'] == 'MX') {
$sRet .= "{$arRecord['host']} {$arRecord['ttl']} {$arRecord['class']} {$arRecord['type']} {$arRecord['pri']} {$arRecord['target']}\n";
} else {
$sRet .= "{$arRecord['host']} {$arRecord['ttl']} {$arRecord['class']} {$arRecord['type']} {$arRecord['target']}\n";
}
}
$sRet .= ($bDebug) ? ("\nDebug:\n" . print_r($arRet, true)) : '';
} else {
$sRet .= 'Bad Action : ' . $sAction;
}
}
$sPageTitle = 'Dig in DNS records';
?>
<?php require 'header.php'; ?>
<form class="form-horizontal" method="post" <?= ($bDebug) ? 'action="?debug=1"' : '' ?> >
<div class="form-group">
<label class="col-sm-2 control-label" for="txtDomain">Domain to dig : </label>
<div class="col-sm-8">
<input class="form-control" id="txtDomain" name="txtDomain" placeholder="URL" value="<?= $_POST['txtDomain']; ?>"/>
</div>
<div class="col-sm-2">
<?php if ($bDebug) : ?>
<a class="btn btn-info" href="?debug=0">Disable Debug</a>
<?php else : ?>
<a class="btn btn-info" href="?debug=1">Enable Debug</a>
<?php endif; ?>
</div>
</div>
<div class="form-group">
<div class="text-center">
<?php foreach (array_keys($arActionList) as $sAction) : ?>
<input class="btn btn-default" type="submit" name="txtBtn" value="<?= $sAction ?>" />
<?php endforeach; ?>
</div>
</div>
</form>
<?php if ($sRet) : ?>
<hr />
<pre><?= $sRet ?></pre>
<?php endif; ?>
<?php require 'footer.php'; ?>