Reman mit DNS Lookup
This commit is contained in:
+58
-12
@@ -154,7 +154,7 @@ Domains jährlich: <span id="costDomain">0</span> €<br>
|
|||||||
|
|
||||||
<section>
|
<section>
|
||||||
|
|
||||||
<h2>Active Ressourcen</h2>
|
<h2>Aktive Ressourcen</h2>
|
||||||
|
|
||||||
<button onclick="openCreate()">Neue Resource</button>
|
<button onclick="openCreate()">Neue Resource</button>
|
||||||
|
|
||||||
@@ -201,6 +201,7 @@ Domains jährlich: <span id="costDomain">0</span> €<br>
|
|||||||
<th>Provider</th>
|
<th>Provider</th>
|
||||||
<th>IP</th>
|
<th>IP</th>
|
||||||
<th>Server</th>
|
<th>Server</th>
|
||||||
|
<th>DNS</th>
|
||||||
<th>Kosten/Jahr</th>
|
<th>Kosten/Jahr</th>
|
||||||
<th>Aktionen</th>
|
<th>Aktionen</th>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -676,32 +677,37 @@ loadResources()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
async function loadDomains(){
|
async function loadDomains(){
|
||||||
|
|
||||||
const res=await fetch(API+"/domains")
|
const res = await fetch(API+"/domains")
|
||||||
const data=await res.json()
|
const data = await res.json()
|
||||||
|
|
||||||
const table=document.getElementById("domains")
|
const table = document.getElementById("domains")
|
||||||
table.innerHTML=""
|
table.innerHTML=""
|
||||||
|
|
||||||
data.forEach(d=>{
|
data.forEach(async d=>{
|
||||||
|
|
||||||
const tr=document.createElement("tr")
|
const tr = document.createElement("tr")
|
||||||
|
|
||||||
tr.innerHTML=`
|
tr.innerHTML=`
|
||||||
|
|
||||||
<td>${d.domain_name}</td>
|
<td>${d.domain_name}</td>
|
||||||
<td><span class="provider">${d.provider || ""}</span></td>
|
|
||||||
<td>${d.ip_address||""}</td>
|
|
||||||
<td>
|
|
||||||
|
|
||||||
|
<td>
|
||||||
|
<span class="provider">${d.provider || ""}</span>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td>${d.ip_address || ""}</td>
|
||||||
|
<td id="server-${d.id}">
|
||||||
${d.resource_name ?
|
${d.resource_name ?
|
||||||
d.resource_name :
|
d.resource_name :
|
||||||
"<span style='color:red'>⚠ no server</span>"}
|
"<span style='color:red'>⚠ no server</span>"}
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td>${d.yearly_cost||""}</td>
|
|
||||||
|
|
||||||
|
<td id="dns-${d.id}">...</td>
|
||||||
|
|
||||||
|
<td>${d.yearly_cost || ""}</td>
|
||||||
|
|
||||||
<td>
|
<td>
|
||||||
|
|
||||||
@@ -715,6 +721,46 @@ d.resource_name :
|
|||||||
|
|
||||||
table.appendChild(tr)
|
table.appendChild(tr)
|
||||||
|
|
||||||
|
|
||||||
|
/* DNS Check */
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
const dnsRes = await fetch(API+"/dns/"+d.domain_name)
|
||||||
|
const result = await dnsRes.json()
|
||||||
|
|
||||||
|
let status="❌"
|
||||||
|
|
||||||
|
if(result.ips && result.ips.length){
|
||||||
|
|
||||||
|
let ipList=result.ips.join("<br>")
|
||||||
|
|
||||||
|
if(d.ip_address && result.ips.includes(d.ip_address)){
|
||||||
|
status="✅ "+ipList
|
||||||
|
}else{
|
||||||
|
status="⚠ "+ipList
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById("dns-"+d.id).innerHTML=status
|
||||||
|
|
||||||
|
/* automatisch Server erkennen */
|
||||||
|
|
||||||
|
const mapRes = await fetch(API+"/domainmap")
|
||||||
|
const mappings = await mapRes.json()
|
||||||
|
|
||||||
|
const server = mappings.find(m=>m.ip_address==result.ips[0])
|
||||||
|
|
||||||
|
if(server){
|
||||||
|
document.getElementById("server-"+d.id).innerHTML=server.server_name
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}catch(e){
|
||||||
|
|
||||||
|
document.getElementById("dns-"+d.id).innerHTML="❌"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
const express = require("express")
|
||||||
|
const router = express.Router()
|
||||||
|
const dns = require("dns").promises
|
||||||
|
|
||||||
|
router.get("/:domain", async (req,res)=>{
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
const records = await dns.resolve4(req.params.domain)
|
||||||
|
|
||||||
|
res.json({
|
||||||
|
domain:req.params.domain,
|
||||||
|
ips:records
|
||||||
|
})
|
||||||
|
|
||||||
|
}catch(err){
|
||||||
|
|
||||||
|
res.json({
|
||||||
|
domain:req.params.domain,
|
||||||
|
ips:[],
|
||||||
|
error:true
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
module.exports = router
|
||||||
@@ -6,6 +6,7 @@ const resourceRoutes = require("./routes/resources");
|
|||||||
const ipRoutes = require("./routes/ips");
|
const ipRoutes = require("./routes/ips");
|
||||||
const domainsRoutes = require('./routes/domains');
|
const domainsRoutes = require('./routes/domains');
|
||||||
const domainMapping = require('./routes/domainMapping')
|
const domainMapping = require('./routes/domainMapping')
|
||||||
|
const dnsRoutes = require("./routes/dns")
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
|
|
||||||
@@ -35,6 +36,7 @@ app.use('/resman/api/domains', domainsRoutes);
|
|||||||
|
|
||||||
app.use('/resman/api/domainmap', domainMapping)
|
app.use('/resman/api/domainmap', domainMapping)
|
||||||
|
|
||||||
|
app.use("/resman/api/dns", dnsRoutes)
|
||||||
|
|
||||||
app.use((err, req, res, next) => {
|
app.use((err, req, res, next) => {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user