Reman mit DNS Lookup
This commit is contained in:
parent
47c95ad539
commit
aa320fb20a
@ -154,7 +154,7 @@ Domains jährlich: <span id="costDomain">0</span> €<br>
|
||||
|
||||
<section>
|
||||
|
||||
<h2>Active Ressourcen</h2>
|
||||
<h2>Aktive Ressourcen</h2>
|
||||
|
||||
<button onclick="openCreate()">Neue Resource</button>
|
||||
|
||||
@ -201,6 +201,7 @@ Domains jährlich: <span id="costDomain">0</span> €<br>
|
||||
<th>Provider</th>
|
||||
<th>IP</th>
|
||||
<th>Server</th>
|
||||
<th>DNS</th>
|
||||
<th>Kosten/Jahr</th>
|
||||
<th>Aktionen</th>
|
||||
</tr>
|
||||
@ -676,32 +677,37 @@ loadResources()
|
||||
}
|
||||
|
||||
|
||||
|
||||
async function loadDomains(){
|
||||
|
||||
const res=await fetch(API+"/domains")
|
||||
const data=await res.json()
|
||||
const res = await fetch(API+"/domains")
|
||||
const data = await res.json()
|
||||
|
||||
const table=document.getElementById("domains")
|
||||
const table = document.getElementById("domains")
|
||||
table.innerHTML=""
|
||||
|
||||
data.forEach(d=>{
|
||||
data.forEach(async d=>{
|
||||
|
||||
const tr=document.createElement("tr")
|
||||
const tr = document.createElement("tr")
|
||||
|
||||
tr.innerHTML=`
|
||||
|
||||
<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 :
|
||||
"<span style='color:red'>⚠ no server</span>"}
|
||||
|
||||
</td>
|
||||
<td>${d.yearly_cost||""}</td>
|
||||
|
||||
|
||||
<td id="dns-${d.id}">...</td>
|
||||
|
||||
<td>${d.yearly_cost || ""}</td>
|
||||
|
||||
<td>
|
||||
|
||||
@ -715,6 +721,46 @@ d.resource_name :
|
||||
|
||||
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="❌"
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
28
backend/routes/dns.js
Normal file
28
backend/routes/dns.js
Normal file
@ -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 domainsRoutes = require('./routes/domains');
|
||||
const domainMapping = require('./routes/domainMapping')
|
||||
const dnsRoutes = require("./routes/dns")
|
||||
|
||||
const app = express();
|
||||
|
||||
@ -35,6 +36,7 @@ app.use('/resman/api/domains', domainsRoutes);
|
||||
|
||||
app.use('/resman/api/domainmap', domainMapping)
|
||||
|
||||
app.use("/resman/api/dns", dnsRoutes)
|
||||
|
||||
app.use((err, req, res, next) => {
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user